java - 如何使用反射从静态方法中获取类名

标签 java reflection

我正在寻找一种方法来获取调用静态方法的类的类名。

例如:

public  class MySuperClass{
    public static String getClassName(){
        //some trick here...
    }
}

public  class MyInheritingClass extends MySuperClass{
        //some interesting code here...
        public static void main(String [ ] args){
            System.out.println(MyInheritingClass.getClassName());
            //this should output "MyInheritingClass" and NOT "MySuperClass"
        }
    }

知道如何解决吗? 谢谢

最佳答案

public  class MyInheritingClass extends MySuperClass{
    //some interesting code here...
    public static void main(String [ ] args){
        System.out.println(MyInheritingClass.getClassName());
        //this should output "MyInheritingClass" and NOT "MySuperClass"
    }
}

这是一种非常具有误导性的调用静态方法的方式。这应该是非法的。静态方法不是虚拟的。绝对没有办法做你想做的事。

关于java - 如何使用反射从静态方法中获取类名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5005986/

相关文章:

java - 使用 Gson 将内部 ArrayList<POJO> 转换为 JSON

java - 具有自定义 View : Resize to wrap the view's content 的 AlertDialog

c# - 缓存或不缓存 - GetCustomAttributes

java - java rx 中 Observable.defer 和 Observable.create 的区别

java - 如何从以毫秒为单位的长 Epoch 时间创建 Java 8 LocalDate?

c# - 获取通用接口(interface)的实现类型

java - setter、getter方法的反射

go - 如何通过读取设置文件在 Golang 中动态创建结构?

java - 使用 HTML5 服务器事件和 Java Servlet 时如何防止 net::ERR_INCOMPLETE_CHUNKED_ENCODING?

java - Groovy 中的克隆和扩展类