从 Java 中的静态方法获取类名

2022-08-31 05:18:29

如何从该类中的静态方法中获取类的名称。例如

public class MyClass {
    public static String getClassName() {
        String name = ????; // what goes here so the string "MyClass" is returned
        return name;
    }
}

为了将其放在上下文中,我实际上希望在异常中将类名作为消息的一部分返回。


答案 1

为了正确支持重构(重命名类),那么你应该使用:

 MyClass.class.getName(); // full name with package

或(感谢@James Van Huis):

 MyClass.class.getSimpleName(); // class name and no more

答案 2

在Java 7+中,您可以在静态方法/字段中执行此操作:

MethodHandles.lookup().lookupClass()

推荐