我已经多次看到这个问题,但是答案不适用于我。这是有问题的接口:
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/