Java getDeclaredConstructor因JUnit中的NoSuchMethodException而失败

时间:2015-01-06 12:04:00

标签: java reflection junit

我有一个基类,它使用反射来创建具体类的空副本,使用以下内容:

public IBase getEmptyCopy() {
   Class type = this.getClass();
   Constructor<?> ctor;
        try {
            ctor = type.getDeclaredConstructor();
            ctor.setAccessible(true);
            clonedObject =(Base) ctor.newInstance();
        } catch (NoSuchMethodException | SecurityException | InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
}
}

我使用以下主要方法创建了一个名为Test的类:

public class Test {
    public static void main(String [] args)  {
....
ConcreteClass emptyInstance = (ConcreteClass) someInstance.getEmptyCopy();
}

所有似乎都有效,但是当我尝试在JUnit测试用例中做同样的事情时:

@Test   
   public void test() {
    ....
        ConcreteClass emptyInstance = (ConcreteClass) someInstance.getEmptyCopy();
        }

我在getDeclaredConstructor调用上得到了一个java.lang.NoSuchMethodException。

任何人都可以解释这是什么原因吗?

感谢。

0 个答案:

没有答案