作者:当时桃花恨春风_375 | 来源:互联网 | 2023-05-21 18:44
这有什么问题?看到代码和警告信息,任何人都可以详细说明.
public void chooseBreakfast() {
ArrayAdapter planAdapter1 = new ArrayAdapter(this,
android.R.layout.simple_spinner_item, new Food[]{
new Food(1, "Toast"),
new Food(99, "Cereal"),
new Food(53, "Fruit"),
new Food(153, "Yogurt")
});
警告消息 - 未经检查的调用'ArrayAdapter(Context,int,T [])'作为原始类型'android.widget.ArrayAdapter'的成员少...(Ctrl + F1)
JDK 5.0 only. Signals places where an unchecked warning is issued by the compiler, for example:
void f(HashMap map) {
map.put("key", "value");
}
Ravi Thapliy..
8
编译器会警告您有关raw 的用法ArrayAdapter
.您应该使用一个通用 ArrayAdapter
的
ArrayAdapter planAdapter1 = new ArrayAdapter(this,
android.R.layout.simple_spinner_item, new Food[]{
new Food(1, "Toast"),
new Food(99, "Cereal"),
new Food(53, "Fruit"),
new Food(153, "Yogurt")
});
请注意,如何ArrayAdapter
定义类及其构造函数.
public class ArrayAdapter extends BaseAdapter ... { // T = generic type
public ArrayAdapter(Context context, int resource, T[] objects) {
init(context, resource, 0, Arrays.asList(objects));
}
...
}
它们使用T
简单ArrayAdapter()
初始化忽略传递的泛型类型参数.因此,警告.传递类型的好处T
是你摆脱了不必要的强制转换,你的代码变得更加类型安全.
对于例如,调用ArrayAdapter#getItem()
一个对原料适配器将返回Object
,并要求你扔在Food
你自己.该generic
适配器将返回的实际类型Food
自动.
1> Ravi Thapliy..:
编译器会警告您有关raw 的用法ArrayAdapter
.您应该使用一个通用 ArrayAdapter
的
ArrayAdapter planAdapter1 = new ArrayAdapter(this,
android.R.layout.simple_spinner_item, new Food[]{
new Food(1, "Toast"),
new Food(99, "Cereal"),
new Food(53, "Fruit"),
new Food(153, "Yogurt")
});
请注意,如何ArrayAdapter
定义类及其构造函数.
public class ArrayAdapter extends BaseAdapter ... { // T = generic type
public ArrayAdapter(Context context, int resource, T[] objects) {
init(context, resource, 0, Arrays.asList(objects));
}
...
}
它们使用T
简单ArrayAdapter()
初始化忽略传递的泛型类型参数.因此,警告.传递类型的好处T
是你摆脱了不必要的强制转换,你的代码变得更加类型安全.
对于例如,调用ArrayAdapter#getItem()
一个对原料适配器将返回Object
,并要求你扔在Food
你自己.该generic
适配器将返回的实际类型Food
自动.