我已经多次看到这个问题,但是答案不适用于我。这是有问题的接口:

public interface MapInterface<K, V> {

    public MapInterface<K, V> put(K key, V value);

}


和实现此目的的类:

public class MapInterfaceImpl<K, V> implements MapInterface {

    @Override
    public MapInterface<K, V> put(K key, V value) {
        // TODO Auto-generated method stub
        return null;
    }
}


我忽略了无关的代码。所有其他类似问题均指向Java编译器合规性问题。他们都说从1.5变为1.6。由于我从一开始就使用1.8,所以这不适用于我。那么这是什么问题呢?

编辑:只是添加一些东西。当Eclipse从接口自动添加未实现的方法而不是put(K key, V value)时,它将改为写入put(Object key, Object value)。这显然与接口中的方法签名不同,但是编译器没有给出错误。

最佳答案

您不会覆盖指定通用参数<K, V>的接口协定。

您需要更改您的机具生产线,使其也包括在内。

public class MapInterfaceImpl<K, V> implements MapInterface<K, V> {
    // implementation
}

关于java - 我已经在这样做时“方法必须重写或实现父类(super class)方法”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26943502/

10-11 09:31