【发布时间】:2014-11-15 07:09:36
【问题描述】:
我多次看到这个问题被问到,但答案并不适用于我。这是有问题的界面:
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)。这显然和接口中的方法签名不同,但是编译器并没有报错。
【问题讨论】: