首页 > 解决方案 > 从属性指定数组列表类型

问题描述

想象一下我有三门课

Feedback
Customer
Supplier

现在我有一个仅用于反馈类的分页代码

    public ArrayList<Feedback> generatePage(int currentPage,Class paginator_type)
    {
        int startItem=currentPage*ITEMS_PER_PAGE;
        int numOfData=ITEMS_PER_PAGE;
        ArrayList<Feedback> pageData=new ArrayList<>();

        if (currentPage == LAST_PAGE )
        {
            for(int i=startItem;i<startItem+ITEMS_REMAINING;i++){
                String ss[] = all_data[i].split(" ");
                pageData.add(new Feedback(ss[5],ss[3],ss[4],ss[0]));

            }
        }
        else
        {
            for (int i=startItem;i<startItem+numOfData;i++)
            {
            String ss[] = all_data[i].split(" ");
            pageData.add(new Feedback(ss[5],ss[3],ss[4],ss[0]));

            }

        }
        return pageData;
    }

现在我需要arraylist类型来改变我添加到它的对象的类型我只需要制作一个接受任何类型数组列表的方法,我该怎么做?以及我如何制作一个接受类类型的参数,例如:

调用方法:

makeArrayList(1,Reservation);

方法 :

public void makeArrayList(int i , Class class) <- how i can declare the parameter
ArrayList<class> aa = new ArrayList<>();

标签: javaarraysclassarraylist

解决方案


您可以interface在所需的类中定义和实现,或者abstract对它进行分类和扩展。

例子

public interface IBase { }

public class Feedback implements IBase {}
public class Customer implements IBase {}
public class Supplier implements IBase {}

并在此方法中将类更改为:

public void makeArrayList(int i , IBase parent)

推荐阅读