はなんですか?宣言のポイントと使用場所の両方で、リスト/配列リテラルをJavaで宣言する方法はありますか?簡潔で警告のないジェネリックリスト宣言?
2番目の懸案事項として、私は、コンパイル時の警告を発生させないか、または警告を抑制する必要があるメソッドを好むでしょう。
注:これは個人的にはJava 8ish on Androidです。答えを変更するには
私が試してみた:
// error: generic array creation
Pair<Integer, String>[] data4 = new Pair<Integer, String>[] {
new Pair<Integer, String>(0, "00000000"),
new Pair<Integer, String>(1, "00000001"),
new Pair<Integer, String>(127, "11111111"),
new Pair<Integer, String>(128, "10000000")
};
// warning: unchecked assignment
Pair<Integer, String>[] data4 = new Pair[] {
new Pair<Integer, String>(0, "00000000"),
new Pair<Integer, String>(1, "00000001"),
new Pair<Integer, String>(127, "11111111"),
new Pair<Integer, String>(128, "10000000")
};
for (Pair<Integer, String> x : data4) {
}
Pair[] data5 = new Pair[] {
new Pair<Integer, String>(0, "00000000"),
new Pair<Integer, String>(1, "00000001"),
new Pair<Integer, String>(127, "11111111"),
new Pair<Integer, String>(128, "10000000")
};
// warning: unchecked assignment
for (Pair<Integer, String> x : data5) {
}
for (Pair x : data5) {
//warning: unchecked assignment
Pair<Integer, String> y = x;
}
// warning: unchecked generics array creation for vargs parameter
List<Pair<Integer, String>> data = Arrays.asList(
new Pair<Integer, String>(0, "00000000"),
new Pair<Integer, String>(1, "00000001"),
new Pair<Integer, String>(127, "11111111"),
new Pair<Integer, String>(128, "10000000")
);
for (Pair<Integer, String> x : data) {
}
List<Pair> data2 = Arrays.asList(
(Pair) new Pair<Integer, String>(0, "00000000"),
(Pair) new Pair<Integer, String>(1, "00000001"),
(Pair) new Pair<Integer, String>(127, "11111111"),
(Pair) new Pair<Integer, String>(128, "10000000")
);
// warning: unchecked assignment
for (Pair<Integer, String> x : data2) {
}
for (Pair x : data2) {
// warning: unchecked assignment
Pair<Integer, String> y = x;
}
第四 '一覧<ペア<整数、文字列>>データ= Arrays.asList'サンプル(jdk1.8.0_91を使用しているとき、私は警告が表示されていません) 。 –