Java创建Route实例时如何传入ArrayList<Ticket>类型参数
问题背景
编写列车时刻表管理程序时,需创建存储3个乘客对应Ticket对象的ArrayList集合,调用Route类带参构造方法创建Route实例时,不清楚最后一个参数的传值内容。
核心原因
查看Route类的带参构造方法定义:
public Route(int ID, int aerop, String depar,String arriv,ArrayList<Ticket> tick )
最后一个形参明确要求传入元素类型为Ticket的ArrayList集合实例。
实现步骤
- 提前实例化3个对应乘客的Ticket对象,传参规则匹配你自己写的Ticket类构造方法即可
- 声明专用于存储Ticket对象的ArrayList集合,将3个Ticket实例添加到集合中
- 将填充好数据的Ticket集合作为最后一个参数传入Route构造方法
修正后代码示例
public static void main(String[] args) { ArrayList <Train> train=new ArrayList<>(); // 实例化3个乘客对应的Ticket对象,参数根据Ticket类实际构造方法填写 Ticket ticket1 = new Ticket(/* 第一个乘客相关参数,如乘客姓名、座位号、票价等 */); Ticket ticket2 = new Ticket(/* 第二个乘客相关参数 */); Ticket ticket3 = new Ticket(/* 第三个乘客相关参数 */); // 创建存储Ticket的集合,添加3个票对象 ArrayList<Ticket> ticketList = new ArrayList<>(); ticketList.add(ticket1); ticketList.add(ticket2); ticketList.add(ticket3); // 传入集合完成Route实例化 Route d1= new Route(0051,50,"Greece","Italy", ticketList); }
补充说明
- 如果暂时不需要初始化票数据,可以直接传入一个空的
ArrayList<Ticket>实例,后续再向集合中添加票数据即可,写法为:new Route(0051,50,"Greece","Italy", new ArrayList<>()) - 不建议传入null作为该参数,否则后续操作Route内的Tickets集合时会触发空指针异常。
内容的提问来源于stack exchange,提问作者Δήμητρα Γενναίου
相关产品推荐
相关产品推荐

