Java:根据用户输入加载类

时间:2015-10-15 05:48:46

标签: java

我必须从用户那里获取类名并动态加载它。

  public class sample{
    public static void main(String[] args) {
    if(args.length < 1)
    {
        print_usage();
    }
    else{
        Class inputClass = null;
        try {
            inputClass = Class.forName(args[0]);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
  }

我有名为Sample2,Sample3:

的类
public class Sample2 {
    private String name;
}

public class Sample3 {
    private int value;
}

我想根据用户输入加载类,Sample2 / Sample3类。

我将文件放在同一目录中,但是我收到了java.lang.ClassNotFoundException错误。如何解决此错误?

1 个答案:

答案 0 :(得分:2)

请更清楚您的问题,我假设您在没有包裹的情况下输入了班级名称 如果它们在包中,则必须使用Class.forName。

Class inputClass = null;
try {
    inputClass = Class.forName("my.package.MyClass");
} catch (ClassNotFoundException e) {
    e.printStackTrace();
}