java - 从属性指定数组列表类型
问题描述
想象一下我有三门课
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<>();
解决方案
您可以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)
推荐阅读
- macos - 链接 docker 容器时 Ubuntu 无法访问主机
- python - 如何解决火花流作业中的动物园管理员超时问题
- angular - 在 AngularDart 中正确使用流
- javascript - 为什么这被算作变异状态?
- c - 如果我们在 SMP 上的中断处理程序中休眠会发生什么
- leaflet - Leaflet.js(使用geojson数据)国家标签不正确
- javascript - 基于字符限制的字符串数组,用于奇怪的页面
- laravel - [Vue 警告]:nextTick 中的错误:“InvalidCharacterError:字符串包含无效字符”
- reactjs - 如何使用 typescript 重用 HOC Redux 组件?
- macos - Xcode 10.1 冻结