我有一个实现了 Set 和 List 接口的类。在 Java6 和 Java7 中程序可以正常工作。
public class SetList<V> implements Set<V>, List<V>
{
....
}
使用Java 8,这段代码无法编译。出现的错误信息如下:
java: 类 trials.SetList 继承了不相关的默认项 spliterator(),来自于类型 java.util.Set 和 java.util.List
错误信息指向的位置是 java/util/Set.java 的第 394 行。
...
@Override
default Spliterator<E> spliterator() {
return Spliterators.spliterator(this, Spliterator.DISTINCT);
}
java/util/List.java
...
@Override
default Spliterator<E> spliterator() {
return Spliterators.spliterator(this, Spliterator.ORDERED);
}
这是否意味着我不能在Java 8中实现既是Set又是List的类?(看起来是时候还我们的技术债了。)
spliterator()
实现。 - Sotirios DelimanolisSet
和List
两者。 - Louis Wasserman