私のコードは、私は警告を抑制するために、アノテーションを使用してせずにを回避するにはどうすればよいのJava SE 7に警告を与えます。 と意図したとおりに可変引数で: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
今すぐ追加しました。 – necromancer
警告は表示されません。私はJava 6を使用しています。それは私のために働く! – Bohemian
ありがとう - それはJava 7です。質問を編集する – necromancer