gpt4 book ai didi

java - 未注解的方法会覆盖使用@NotNull 注解的方法

转载 作者:IT老高 更新时间:2023-10-28 20:34:48 64 4
gpt4 key购买 nike

我正在实现一个自定义数据结构,它为我提供了集合的一些属性和列表的其他属性。不过,对于大多数已实现的方法,我在 Java 7 上的 IntelliJ IDEA 中收到了这个奇怪的警告:

Not annotated method overrides method annotated with @NotNull

编辑:下面的代码与问题无关,而是原始问题的一部分。由于 IntelliJ 中存在错误,因此出现此警告。见 answer (希望)解决您的问题。


我找不到任何相关的东西,我不确定我是否真的错过了某种检查,但我已经查看了 ArrayList 和 List 接口(interface)的源代码并且可以'看不到这个警告实际上是关于什么的。它在引用列表字段的每个实现的方法上。这是我制作的类(class)的片段:

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);
}

最佳答案

尝试将 @Nonnull ( javax.annotation.Nonnull ) 添加到 toArray 方法中。

当我添加此注释时,警告消失了。我认为警告消息不正确,它说 @NotNull 丢失。

关于java - 未注解的方法会覆盖使用@NotNull 注解的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24495448/

64 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com