仅获取类Class.getName()的名称


87

我如何获得课程名称

String.class.getName()  returns java.lang.String


我只对最后一部分感兴趣,即只有String
任何Api都可以做到这一点?


4
Java具有出色的在线文档。下面与andyb链接的页面是一个示例。每当您对类或包中可用的确切功能有疑问时,都可以像使用Google搜索“ java 6 <有问题的包或类>”一样容易地找到javadocs。
摩根大通

Answers:



9

以下两种方法都可以正常工作。

System.out.println("The Class Name is: " + this.getClass().getName());
System.out.println("The simple Class Name is: " + this.getClass().getSimpleName());

输出如下:

类名是:package.Student

简单的班级名称是:学生


7

或以编程方式

String s = String.class.getName();
s = s.substring(s.lastIndexOf('.') + 1);

1
这对我有所帮助,因为我无法从我的框架中使用getSimpleName()... Tq
Imposter,2013年

1
同样,对于匿名类,编程方法也会产生理智的结果。
Hollis Waite 2013年

@Imposter您使用的是Java 1.5之前的版本?
2014年

您需要处理.找不到的情况。
eckes

@eckes如果找不到点,结果将为-1,加1将为您提供一个从索引0开始的子字符串-在这种情况下正是您所需要的。(我刚刚用进行了测试,int[]结果是"[I"。)
toolforger

4

您可以对类名称使用以下简单技术进行打印日志。

private String TAG = MainActivity.class.getSimpleName();

假设我们必须检查方法中即将到来的变量值,那么我们可以像下面这样使用log:

private void printVariable(){
Log.e(TAG, "printVariable: ");
}

此行的重要性在于,我们可以将方法名称和类名称一起检查。编写这种类型的日志。

写:- 登录并输入。

将在控制台上打印

E/MainActivity: printVariable:

2

Social.class.getSimpleName()

getSimpleName():返回源代码中给定的基础类的简单名称。如果基础类是匿名的,则返回一个空字符串。数组的简单名称是组件类型的简单名称,后跟“ []”。特别是其组件类型为匿名的数组的简单名称为“ []”。


1

这是访问对象属性的Groovy方法:

this.class.simpleName    # returns the simple name of the current class

-2

获取简单名称而不是路径。

String onlyClassName =  this.getLocalClassName(); 

在onCreate中调用上述方法


解决方案不完整。
PLG

如果您不提供方法的来源,OP将无法使用它。
eckes
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.