【问题标题】:Running java class from string [duplicate]从字符串运行java类[重复]
【发布时间】:2016-03-19 21:44:44
【问题描述】:

有什么办法可以解决这个问题

String ClassName = "testing";
Classname.main();

testing.class 是 bin 文件夹中的一个类
如果它很重要,我正在使用 eclipse

【问题讨论】:

  • String 有main() 方法吗?没有。
  • 您可以完成这项工作(只是不像您的问题中显示的那样,而是以稍微不同的方式),这里的关键字是反射。查看Class 类及其提供的方法。

标签: java


【解决方案1】:

你可以像这样获得课程:

public Object withName(String className) {

    try{
        Class<?> c = Class.forName(className);
        Constructor<?> cons = c.getConstructor();

        return cons.newInstance();
    }catch (Exception e){
        e.printStackTrace();
        return null;
    }
}

如果您不知道它是哪个类,要查找所需类的方法,您可以查看此帖子:

Can I get all methods of a class?

【讨论】:

    【解决方案2】:

    你可以这样做:

    String aux = (String) (Class.forName("java.lang.String")).newInstance();
    

    然后你可以用aux做你想做的事,例如调用一个静态方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-20
      • 1970-01-01
      • 2011-01-20
      • 2014-09-24
      • 2014-04-22
      • 2010-11-30
      • 2013-02-17
      • 2012-10-19
      相关资源
      最近更新 更多