如何在没有包的情况下获取类的名称?

时间:2010-04-22 11:31:13

标签: java

在C#中,我们有Type.FullNameType.Name来获取一个类型的名称(本例中为类),有或没有名称空间(java-world中的包)。

Type.Name相当的java是什么?

显然,必须有一种比使用Class.getName()更好的方法,并手动删除包名称。

3 个答案:

答案 0 :(得分:318)

Class.getSimpleName()

  

返回源代码中给出的基础类的简单名称。如果基础类是匿名的,则返回空字符串。

     

数组的简单名称是附加了“[]”的组件类型的简单名称。特别是组件类型为匿名的数组的简单名称是“[]”。

它实际上是从名称中剥离包信息,但这对您来说是隐藏的。

答案 1 :(得分:20)

以下功能适用于JDK 1.5及以上版本。

public String getSimpleName()

答案 2 :(得分:13)

如果使用StackTraceElement,请使用:

String fullClassName = stackTraceElement.getClassName();
String simpleClassName = fullClassName.substring(fullClassName.lastIndexOf('.') + 1);

System.out.println(simpleClassName);