указать тип списка массивов из атрибута - PullRequest
0 голосов
/ 23 марта 2020

представьте, что у меня есть три класса

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<>();

1 Ответ

0 голосов
/ 23 марта 2020

Вы можете определить 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)
...