gpt4 book ai didi

java - 使用参数化对象数组调用函数

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:51:32 26 4
gpt4 key购买 nike

我有一个类PictureArrayAdapter延伸 ArrayAdapter<Pair<String, ImageInitialiser>>并具有以下构造函数:

public PictureArrayAdaptor(Context context, Pair<String, ImageInitialiser>[] values)

我们已经明确声明,调用此构造函数时,程序员必须传递一个Pair<String, ImageInitialiser>[]。 ,否则可能会出现类型错误。现在,在没有警告的情况下生成这样的对象是相当困难的:

@SuppressWarnings("unchecked")
Pair<String, ImageInitialiser> tableData[] = new Pair[1];
tableData[0]=new Pair<String, ImageInitialiser>("A", new ResourceImageInitialiser(R.drawable.sample1));

一种可能性是改用列表。但是,为了保持一致性,我希望所有构造函数完全与基类保持一致。有没有更好的方法来调用这个构造函数?我真的不认为应该这样调用它。

最佳答案

另一种方法是创建一个扩展 Pair 的类,例如

class NamedImage extends Pair<String, ImageInitialiser> { ... }
class PictureArrayAdapter extends ArrayAdapter<NamedImage> { ... }

NamedImage 现在是一个reifiable 类型,因此您可以使用像NamedImage[] 这样的数组而不受惩罚。此外,它摆脱了未经检查的异常并简化了所有声明,以便它们不再具有嵌套类型参数。

关于java - 使用参数化对象数组调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11963027/

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