Java - 获取当前类名?

2022-08-31 04:54:47

我所要做的就是获取当前的类名,java在我的类名末尾附加一个无用的无意义的$1。如何摆脱它并仅返回实际的类名?

String className = this.getClass().getName();

答案 1

尝试

String className = this.getClass().getSimpleName();

只要您不在静态方法中使用它,这将起作用。


答案 2

“$1”不是“无用的无稽之谈”。如果您的类是匿名的,则会追加一个数字。

如果您不想要类本身,而是其声明类,则可以使用 .例如:getEnclosingClass()

Class<?> enclosingClass = getClass().getEnclosingClass();
if (enclosingClass != null) {
  System.out.println(enclosingClass.getName());
} else {
  System.out.println(getClass().getName());
}

您可以在一些静态实用程序方法中移动它。

但请注意,这不是当前的类名。匿名类与其封闭类是不同的类。内部类的情况类似。