繁体   English   中英

在java中给出一个类对象的调用静态方法

[英]call static method given a class object in java

如果

class MyClass {
    public static void main(String[] str) {
        System.out.println("hello world");
    }
}

// in some other file and method
Class klass = Class.forName("MyClass");

我怎样才能调用MyClass.main 我在编译时没有字符串“MyClass”,所以我不能简单地调用MyClass.main(String[]{})

您使用反射来调用方法(或创建对象等)。 下面是一个在MyClass调用main()方法的示例。 您需要确保的是MyClass在类路径中。

Class<?> cls = Class.forName("MyClass");
Method m = cls.getMethod("main", String[].class);
String[] params = null; 
m.invoke(null, (Object) params); 

如果您在编译时没有“MyClass”字符串,那么您需要查找它,框架用于执行此操作的常用方法:

  • 配置.properties或xml文件,您将在其中找到所需的类名。
  • 扫描当前目录中符合条件的.class文件。
  • 扫描符合条件的.class文件的.jar文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM