gpt4 book ai didi

java - Java SE 7 中不可具体化类型的可变参数——怎么样?

转载 作者:搜寻专家 更新时间:2023-11-01 02:30:31 25 4
gpt4 key购买 nike

我的代码在 Java SE 7 中发出警告。如何使用注解来抑制警告? 并使用预期的可变参数:

  import java.util.Iterator;

public class UnionIterator < E > implements Iterator < E > {

public static < E > Iterator < E > newInstance (Iterator < E > ... iterators) {
return new UnionIterator < E >(iterators);
}

private Iterator < E > [] iterators;

private UnionIterator (Iterator < E > ... iterators) {
this.iterators = iterators;
}

@Override
public boolean hasNext() {
// TODO
return false;
}

@Override
public E next() {
// TODO
return null;
}

@Override
public void remove() {
// TODO
}

}

这里是警告:

$ javac UnionIterator.java 
Note: UnionIterator.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
$ javac -Xlint:unchecked UnionIterator.java
UnionIterator.java:5: warning: [unchecked] Possible heap pollution from parameterized vararg type Iterator<E>
public static < E > Iterator < E > newInstance (Iterator < E > ... iterators) {
^
where E is a type-variable:
E extends Object declared in method <E>newInstance(Iterator<E>...)
UnionIterator.java:11: warning: [unchecked] Possible heap pollution from parameterized vararg type Iterator<E>
private UnionIterator (Iterator < E > ... iterators) {
^
where E is a type-variable:
E extends Object declared in class UnionIterator
2 warnings

最佳答案

你不能。如果您使用的是 Java 7,则可以使用 @SafeVarargs工厂方法上的注释,以抑制每次调用 newInstance 时的警告。

关于java - Java SE 7 中不可具体化类型的可变参数——怎么样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10560224/

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