Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 是否可以使用..将这两种方法合并为一种方法。。多态性?_Java_Android - Fatal编程技术网

Java 是否可以使用..将这两种方法合并为一种方法。。多态性?

Java 是否可以使用..将这两种方法合并为一种方法。。多态性?,java,android,Java,Android,在我的android应用程序中,我有ItemCategory POJO和ItemSubcategory POJO,它们都扩展了包含一些共同特征的类别POJO 我有一个自定义加载微调器方法,我将对象的ArrayList传递给该方法,它将对象加载到微调器(下拉/选择的Android名称) 我尝试将ArrayList传递给单个方法loadCategoriesIntoSpinner(该方法接受ArrayList作为参数),我希望它能够确定我传递的是ArrayList,但它没有 public static

在我的android应用程序中,我有ItemCategory POJO和ItemSubcategory POJO,它们都扩展了包含一些共同特征的类别POJO

我有一个自定义加载微调器方法,我将对象的ArrayList传递给该方法,它将对象加载到微调器(下拉/选择的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);
}
继承类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);
    ...