什麼是tersest在Java中聲明一個列表/數組字面值的方法,無論是在聲明點還是使用點?Terse,免警通用清單聲明?
作爲一個次要問題,我更喜歡一種不會導致編譯時警告或需要禁止警告的方法。
注:個人而言,這是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;
}
使用4'名單<對<整數,字符串>>數據= Arrays.asList'樣品(jdk1.8.0_91時,我沒有看到任何警告) 。 –