继承HashMap的NoSuchMethodError

时间:2016-10-25 15:28:10

标签: java dictionary inheritance hashmap

我试图找到与我的问题类似的东西,但没有成功。 我的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 )?

谢谢和问候!

0 个答案:

没有答案