我要做的就是获取当前的类名,并且java在类名的末尾附加了一个无用的废话 $ 1 。如何摆脱它,只返回实际的类名?
String className = this.getClass().getName();
最佳答案
“$ 1”不是“无用的废话”。如果您的类(class)是匿名的,则会附加一个数字。
如果您不想要类本身,而是想要它的声明类,则可以使用getEnclosingClass()
。例如:
Class<?> enclosingClass = getClass().getEnclosingClass();
if (enclosingClass != null) {
System.out.println(enclosingClass.getName());
} else {
System.out.println(getClass().getName());
}
您可以使用一些静态实用程序方法来移动它。
但是请注意,这不是当前的类名。匿名类与其封闭类是不同的类。内部类的情况与此类似。