当用户输入他们已落地时,我正试图移除我的飞机。这不起作用。任何人都可以看到我的代码有任何问题,为什么它不起作用。
这是我的代码:
平面
static boolean isLanded;
public boolean isLanded() {
return isLanded;
}
public void setLanded(boolean isLanded) {
this.isLanded = isLanded;
}
PlaneStore
public void removeLandedPlanes(PlaneStore store)
{
if(Plane.isLanded = true)
{
airlineMap.remove(store);
}
}
MainApp
case 3:
System.out.println("Remove Landed Planes.");
airlineMap.removeLandedPlanes(airlineMap);
airlineMap.print();
break;
PlaneStore中的HashMap声明
HashMap<String, TreeMap<String, Plane>> airlineMap;
public PlaneStore()
{
airlineMap = new HashMap<String, TreeMap<String, Plane>>();
}
然后在主PlaneStore airlineMap = new PlaneStore();
这似乎使每个飞机对象都有isLanded
到false
。
答案 0 :(得分:2)
if(Plane.isLanded = true)
请注意,这是将值true
分配到Plane.isLanded
。您希望使用比较运算符==
而不是=
。
if(Plane.isLanded == true)
由于这已经是boolean
,您实际上应该完全忽略== true
:
if(Plane.isLanded)
答案 1 :(得分:0)
您正在分配给Plane.isLanded
,而不是为了平等而进行测试
if(Plane.isLanded = true)
应该是
if(Plane.isLanded == true)
你可以简单地用
来避免这种情况if (Plane.isLanded)
或将常数术语放在左侧
if (true == Plane.isLanded)
如果你犯了=
而不是==
的初步错误,那么就不会编译