Java 是否可以使用..将这两种方法合并为一种方法。。多态性?
在我的android应用程序中,我有ItemCategory POJO和ItemSubcategory POJO,它们都扩展了包含一些共同特征的类别POJO 我有一个自定义加载微调器方法,我将对象的ArrayList传递给该方法,它将对象加载到微调器(下拉/选择的Android名称) 我尝试将ArrayList传递给单个方法loadCategoriesIntoSpinner(该方法接受ArrayList作为参数),我希望它能够确定我传递的是ArrayList,但它没有Java 是否可以使用..将这两种方法合并为一种方法。。多态性?,java,android,Java,Android,在我的android应用程序中,我有ItemCategory POJO和ItemSubcategory POJO,它们都扩展了包含一些共同特征的类别POJO 我有一个自定义加载微调器方法,我将对象的ArrayList传递给该方法,它将对象加载到微调器(下拉/选择的Android名称) 我尝试将ArrayList传递给单个方法loadCategoriesIntoSpinner(该方法接受ArrayList作为参数),我希望它能够确定我传递的是ArrayList,但它没有 public static
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);
}
继承类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(上下文上下文,列表public static void loadSubcategoriesIntoSpinner)(上下文,列表public static void loadCategoriesIntoSpinner(上下文,列表数组,微调器){
ArrayAdapter dataAdapter=新的ArrayAdapter(上下文,R.drawable.simple\u微调器\u项,数组);
...
公共静态void loadCategoriesIntoSpinner(上下文上下文、列表数组、微调器微调器){
ArrayAdapter dataAdapter=新的ArrayAdapter(上下文,R.drawable.simple\u微调器\u项,数组);
...
如果不使用ArrayList而不是List,我将不得不放弃什么功能?使用List界面意味着您可以在不更改任何其他代码的情况下更改实现细节(即使用不同的List实现)。这样做是最佳做法。因此,无论我有什么列表(linkedList,ArrayList)我总是可以将它传递给接受正确列表的方法。任何实现列表接口的类。如果不使用ArrayList而不是List,我必须放弃什么功能?使用列表接口意味着您可以更改实现细节(即使用不同的列表实现)不更改任何其他代码。这样做是最佳实践。因此,无论我有什么列表(linkedList,arrayList),我都可以将其传递给接受正确列表的方法。任何实现列表接口的类。
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)
public static void <T extends Category> loadCategoriesIntoSpinner(Context context, List<T> array, Spinner spinner) {
ArrayAdapter<T> dataAdapter = new ArrayAdapter<T>(context, R.drawable.simple_spinner_item, array);
...