我已经多次看到这个问题,但答案并不适用于我。这是有问题的界面:
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 自动从接口(interface)添加未实现的方法时,它不会写入 put(K key, V value)
,而是写入 put(Object key, Object value)
。这与接口(interface)中的方法签名明显不同,但编译器不会给出错误。
最佳答案
您不会覆盖接口(interface)的约定,该约定已指定通用参数 <K, V>
.
您需要更改您的工具行以将其包含在内。
public class MapInterfaceImpl<K, V> implements MapInterface<K, V> {
// implementation
}
关于java - "method must override or implement a superclass method"当我已经这样做的时候,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26943502/