J2EE反射类

时间:2014-01-16 08:21:28

标签: class java-ee reflection loader

我使用反射来调用名为Child的类的构造函数,该类需要包:org.apache.commons.lang3.ArrayUtils 我已经将它添加到类路径中并且已经在其他地方使用它了,但反射似乎没有看到我的类路径。

错误: java.lang.NoClassDefFoundError:org / apache / commons / lang3 / ArrayUtils

我搜索并看过很多关于类加载器的文章,但我仍然不明白这一点。有人可以解释一下问题以及如何尽可能清楚地解决问题吗?

//main class:
try {
   Class<?> claz = Class.forName(claz_str);
   Parent p = (Parent) claz.getDeclaredConstructor(String.class, String[].class, String[].class).newInstance(elmName, nodes_arr, params_arr);
   } catch (Exception e) {
   throw new Exception(e.getCause());
}

// Child.class
import org.apache.commons.lang3.ArrayUtils;
public class Child extends Parent{
   public Child(){
      if(!ArrayUtils.contains(NUM_OF_PARAMS, 2)){ // <<====== run time error
        System.out.println("stuff")
      }
   }
}

1 个答案:

答案 0 :(得分:0)

您的代码似乎没问题。您是否将{class 1}}作为班级的完全符合条件的名称。 它应该是

claz_str

希望解决你的问题。