【发布时间】:2014-01-21 22:12:48
【问题描述】:
我有这样的方法:
public IMyInterface factoryMethod(Class<? extends IMyInterface> concreteClass){
IMyInterface o = concreteClass.newInstance();
//...some stuff
return o;
}
如果调用方法我得到异常:java.lang.NoClassDefFoundError: packages/IMyInterface
似乎它试图找到类IMyInterface,然后找到它的构造函数。当然失败了。
如何解决这个问题?
【问题讨论】:
-
您确定 IMyInterface 在您的类路径中吗?通常 NoClassDefFoundError 是由于类路径问题而引发的运行时错误。
-
你能在没有反射的情况下创建你的类的实例吗?
NoClassDefFoundError通常发生在您的代码所依赖的类在编译时出现在类路径中,但在执行代码时不在类路径中。 -
您能否显示其余代码的 sn-ps。例如,IMyInterface?
-
@Jason 但在泛型范围内,您将
extends用于接口和类。 -
类不能扩展接口!!在这里你可以看到非常好的接口解释和示例 --> tutorialspoint.com/java/java_interfaces.htm
标签: java class reflection interface instance