我正在实现一个自定义的数据结构,其中具有一些集合的属性和一些列表的属性。然而,对于大多数已实现的方法,在Java 7的IntelliJ IDEA上,会收到以下奇怪的警告:
未注释的方法覆盖了用@NotNull注释的方法
编辑:下面的代码与问题无关,只是原始问题的一部分。这个警告出现是因为IntelliJ中的一个bug。请参见答案(希望能)解决您的问题。
我找不到任何相关的信息,也不确定是否确实缺少某种检查,但我已经查看了ArrayList和List接口的源代码,却看不到这个警告实际上是关于什么的。它出现在每个引用列表字段的已实现方法上。以下是我编写的类的一部分代码:
public class ListHashSet<T> implements List<T>, Set<T> {
private ArrayList<T> list;
private HashSet<T> set;
/**
* Constructs a new, empty list hash set with the specified initial
* capacity and load factor.
*
* @param initialCapacity the initial capacity of the list hash set
* @param loadFactor the load factor of the list hash set
* @throws IllegalArgumentException if the initial capacity is less
* than zero, or if the load factor is nonpositive
*/
public ListHashSet(int initialCapacity, float loadFactor) {
set = new HashSet<>(initialCapacity, loadFactor);
list = new ArrayList<>(initialCapacity);
}
...
/**
* The Object array representation of this collection
* @return an Object array in insertion order
*/
@Override
public Object[] toArray() { // warning is on this line for the toArray() method
return list.toArray();
}
编辑:我在这个类中有这些额外的构造函数:
public ListHashSet(int initialCapacity) {
this(initialCapacity, .75f);
}
public ListHashSet() {
this(16, .75f);
}