我试图找到与我的问题类似的东西,但没有成功。
我的IDE和编译器对实现很满意,但是在运行时我得到一个“a
” - 异常抛出。
我们假设,我有3个班级。
A类
NoSuchMethodError
B类
public final class MyEnumMap<V> extends HashMap<Integer, V> {
...
}
C类
public class B {
...
private static transient MyEnumMap<Type> enumeration = new MyEnumMap<Type>();
/**
* @return enumeration
*/
public static final Map<Integer, Type> getEnumeration () {
return enumeration;
}
...
}
在运行时会引发以下错误:
java.lang.NoSuchMethodError: COM /我/包/路径/ B.getEnumeration()Ljava / util的/ HashMap中;
我可以看到C类中的调用方法期望结果为public class C {
...
public List<Long> resolveSomething(Long Id) throws PCEException {
Map<Integer, Type> myTypes = B.getEnumeration();
}
...
}
(HashMap
),但就我而言,我编写的类继承自{{1} (请参阅第一个类“Ljava/util/HashMap
”,它继承自HashMap
)。那么 - 这里的问题在哪里?是因为我尝试执行“MyEnumMap
”并尝试将其置于安全类型HashMap
中,而“B.getEnumeration
”实际上只保留值(请参阅<Integer, Type> Map
)?
谢谢和问候!