Java - 获取当前类名?
我所要做的就是获取当前的类名,java在我的类名末尾附加一个无用的无意义的$1。如何摆脱它并仅返回实际的类名?
String className = this.getClass().getName();
我所要做的就是获取当前的类名,java在我的类名末尾附加一个无用的无意义的$1。如何摆脱它并仅返回实际的类名?
String className = this.getClass().getName();
尝试
String className = this.getClass().getSimpleName();
只要您不在静态方法中使用它,这将起作用。
“$1”不是“无用的无稽之谈”。如果您的类是匿名的,则会追加一个数字。
如果您不想要类本身,而是其声明类,则可以使用 .例如:getEnclosingClass()
Class<?> enclosingClass = getClass().getEnclosingClass();
if (enclosingClass != null) {
System.out.println(enclosingClass.getName());
} else {
System.out.println(getClass().getName());
}
您可以在一些静态实用程序方法中移动它。
但请注意,这不是当前的类名。匿名类与其封闭类是不同的类。内部类的情况类似。