gpt4 book ai didi

java - Android Studio 显示警告未检查以下代码的调用

转载 作者:搜寻专家 更新时间:2023-10-31 19:38:13 26 4
gpt4 key购买 nike

这是怎么回事?查看代码和警告消息,任何人都可以详细说明。

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")
});

WARNING MESSAGE - Unchecked call to 'ArrayAdapter(Context, int, T[])' as a member of raw type 'android.widget.ArrayAdapter' less... (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");
}

最佳答案

编译器警告您有关 raw ArrayAdapter 的用法。您应该使用通用 ArrayAdapter 作为

ArrayAdapter<Food> planAdapter1 = new ArrayAdapter<Food>(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<T> extends BaseAdapter ... { // T = generic type

public ArrayAdapter(Context context, int resource, T[] objects) {
init(context, resource, 0, Arrays.asList(objects));
}
...
}

它们使用一个通用类型参数 T ,简单的 ArrayAdapter() 初始化忽略传递。因此,警告。传递类型 T 的好处是您可以摆脱不必要的转换,并且您的代码变得更加类型安全。

例如,在 raw 适配器上调用 ArrayAdapter#getItem() 将返回 Object 并要求您将其转换为 自己吃饭generic 适配器将自动返回实际类型 Food

关于java - Android Studio 显示警告未检查以下代码的调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28541809/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com