public void addFlight(String planeID, String departure, String arrival) {
Flight newFlight = null;
for(Plane p : this.planes) {
if(p.getID().equals(planeID)) {
newFlight = new Flight(p, departure, arrival);
}
}
flights.put(planeID, newFlight);
}
由于输入的planeID字符串确定了分配给新航班的飞机,因此我在planes数组列表中运行了一个循环,以检查名称是否匹配。我很确定这是什么使我不能做多个“航班”有相同的“飞机”,但我不知道我还能改变什么。我尝试添加这个附加的if语句,但它并没有像我想的那样起作用。
else if (this.flights.keySet().contains(p.getID())) {
newFlight = new Flight(p, departure, arrival); //In case it is a repeated Plane
}
为飞机创建HashMap
并为航班创建ArrayList
。
您的设计将得到更多的简化,您将得到预期的行为。
添加代码将成为
public void addFlight(String planeID, String departure, String arrival) {
flights.add(planes.get(planeID), departure, arrival);
}
散列映射
的键。所以无论哪一个是唯一的w.r.t。键,应该放在hashmap
中。在本例中为平面。hashmap
按照章鱼建议将
与plane
列表为flight
类的成员。两种选择都很容易使用,但在第一选择中,飞行类中的飞机参考是多余的。所以我会选择第二个选择。
你应该选一个最适合你的。
我可以使用Powermock中的,但我想知道Spock有没有办法做到这一点。
本文向大家介绍Java创建对象的几种方法,包括了Java创建对象的几种方法的使用技巧和注意事项,需要的朋友参考一下 有时候,也可能碰到这样面试题,如: Java创建对象有哪几种方法? 除了new之外,java创建对象还有哪几种方式? 本文结合例子,给出几种Java创建对象的方法,Here we go~~~~ 使用new创建 这是最常用的一种。如: Book book = new Book(); 示
我很确定我以前做过这件事,所以我不知道为什么它现在会导致错误。这是我得到的错误: 它指向我定义新对象的位置,所以在静态上下文中不允许在方法调用中这样做吗?我需要定义一个变量并传入吗?因为那样会花更多的时间,而且会更加混乱。。。。 对于适当的上下文: 数组的类型为ArrayList Point是我定义的类。构造函数调用正确 p是Point的一个实例。它有两个字段:d0和d1(维度0和维度1,以减少与
我编写了一个类,它读取整个文件并返回内容。
好的,这是我的代码的一个紧凑版本 IDE(Eclipse)在emparray.add行上给出了以下错误 无法对非静态emparray进行静态引用 EmployeeClass无法解析为变量 令牌obj语法错误,请删除此令牌。 null
主要内容:显式创建对象,隐含创建对象对象是对类的实例化。对象具有状态和行为,变量用来表明对象的状态,方法表明对象所具有的行为。 Java 对象的生命周期包括创建、使用和清除,本文详细介绍对象的创建,在 Java 语言中创建对象分显式创建与隐含创建两种情况。 显式创建对象 对象的显式创建方式有 4 种。 1. 使用 new 关键字创建对象 这是常用的创建对象的方法,语法格式如下: 2. 调用 java.lang.Class 或者 ja