私はついに、Java 7 が親切に生成した新しいコンパイラ警告をすべて取り除こうとしました。私はこれら2つを残しましたが、私には理解できません。それらを抑制せずにそれらを取り除く方法はありますか?
ジェネリックに型指定されたオブジェクトの配列を構築する (配列作成のどこに a を配置できますか?):
static final int N = 10;
//warning: [unchecked] unchecked conversion
static final Set<Widget>[] queued = new ConcurrentSkipListSet[N];
//required: Set<Widget>[]
//found: ConcurrentSkipListSet[]
ジェネリック varargs (ジェネリック型の varargs を受け入れるほぼすべての場所で発生するようです):
class Foo<T> {
//warning: [unchecked] Possible heap pollution from parameterized vararg type T
public void add(T... entries) {
//where T is a type-variable:
//T extends Object declared in class Foo
ところで:私はすでに持っています:
// Add many entries to the list.
public void add(List<T> entries) {
// ...
}
// Add a number of entries.
public void add(T... entries) {
// Make a list of them.
add(Arrays.<T>asList(entries));
}