我正在 Eclipse 中开发一个项目,当我使用 jetty 插件启动时,它给了我一个
java.lang.AbstractMethodError:
au.com.mycopmpany.impl.MyClassDAOImpl.findById(Ljava/lang/Integer;)Ljava/lang/Object;.
该文件在 Eclipse 中编译良好,并且代码正在实现错误所涉及的方法。从我的阅读来看,这个错误表明“在运行时”JVM 找到了一个没有实现这个方法的类。
但我可以向您保证,MyClassDAOImpl
最肯定的findById
方法是使用正确的签名实现的。
这似乎是 Eclipse 编译器中的一个错误;maven package
我可以通过从命令提示符运行然后在 Eclipse 中运行应用程序来解决这个问题。
Eclipse 编译器似乎存在与此类相关的某种错误。我确实在网上阅读了一些关于 Eclipse 编译器中泛型的错误(这个类确实使用泛型)但是这个基类/接口在我们的代码库中一遍又一遍地重新实现,而且这个类总是有问题。
有谁知道解决方法,或者更好的是,解决这个问题?
我每次都可以复制这个异常,所以如果 Eclipse 编译器开发人员读到这个并且这是一个已知问题,请随时与我联系以寻求帮助以追踪问题。
更新:
有问题的类是许多实现GenericDAO
通用接口定义为的类之一:
public interface GenericDAO<T, TList>
有问题的方法是失败的:
public T findById(Integer integer) throws APIException;