gpt4 book ai didi

java - 是否可以将这两种方法合并为一种,可能使用..多态性?

转载 作者:行者123 更新时间:2023-12-01 17:16:31 24 4
gpt4 key购买 nike

在我的 Android 应用程序中,我有 ItemCategory POJO 和 ItemSubcategory POJO,它们都扩展了具有一些共同特征的 Category POJO。

我有一个自定义的 Load Spinner 方法,我将对象的 ArrayList 传递给该方法,并将它们加载到 Spinner 中(下拉/选择的 Android 名称)

我尝试将 ArrayList 传递给单个方法 loadCategoriesIntoSpinner(该方法接受 ArrayList 作为参数),我希望它能够弄清楚我传递的是 ArrayList 但它没有。

public static void loadCategoriesIntoSpinner(Context context, ArrayList<ItemCategory> array, Spinner spinner) {

// Creating adapter for spinner
ArrayAdapter<ItemCategory> dataAdapter = new ArrayAdapter<ItemCategory>(context,
R.drawable.simple_spinner_item, array);

// Drop down layout style - list view with radio button
dataAdapter
.setDropDownViewResource(R.drawable.simple_spinner_dropdown_item);

// Attaching data adapter to spinner
spinner.setAdapter(dataAdapter);
}

public static void loadSubcategoriesIntoSpinner(Context context, ArrayList<ItemSubcategory> array, Spinner spinner) {

// Creating adapter for spinner
ArrayAdapter<ItemSubcategory> dataAdapter = new ArrayAdapter<ItemSubcategory>(context,
R.drawable.simple_spinner_item, array);

// Drop down layout style - list view with radio button
dataAdapter
.setDropDownViewResource(R.drawable.simple_spinner_dropdown_item);

// Attaching data adapter to spinner
spinner.setAdapter(dataAdapter);
}

以下是类别对象:

主类类别:

abstract public class Category {

private int id;
private String name;

public int getId() {
return id;
}

public void setId(int id) {
this.id = id;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

@Override
public String toString() {
return this.name;
}

} // End of Class

继承类ItemCategory

public class ItemCategory extends Category {

private String logo;

public String getLogo() {
return logo;
}

public void setLogo(String logo) {
this.logo = logo;
}

} // End of Class

继承类ItemSubcategory:

public class ItemSubcategory extends Category {

private int parentID;

public void setParentID(int parentID) {
this.parentID = parentID;
}

public int getParentID() {
return parentID;
}

} // End of Class

最佳答案

public static void loadSubcategoriesIntoSpinner(Context context, List<? extends Category> array, Spinner spinner)

或者也

public static void loadSubcategoriesIntoSpinner(Context context, List<Category> array, Spinner spinner)

如果您将列表创建为 List<Category> .

我建议您使用接口(interface)List而不是像 ArrayList 这样的特定实现。这样您就可以更改实现(例如更改为 LinkedList),而无需修改代码。

关于java - 是否可以将这两种方法合并为一种,可能使用..多态性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21753162/

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