3

ユーザーが着陸したことを入力したときに飛行機を削除しようとしています。これは機能しません。誰かが私のコードの問題を、なぜそれが機能しないのかを知ることができますか?

これが私のコードです:

飛行機

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

4

2 に答える 2

2
if(Plane.isLanded = true)

これはに値を割り当てていることに注意してください。の代わりに比較演算子を使用したい。truePlane.isLanded===

if(Plane.isLanded == true)

そして、これはすでに行われているので、実際には完全booleanに除外する必要があります。== true

if(Plane.isLanded)
于 2012-12-13T12:39:20.490 に答える
0

に割り当ててPlane.isLandedいますが、同等性をテストしていません

 if(Plane.isLanded = true)

する必要があります

 if(Plane.isLanded == true)

あなたは単にこれを完全に避けることができます

if (Plane.isLanded)

または定数項を左側に置きます

if (true == Plane.isLanded)

=あなたが代わりにあなたの最初の間違いをしたならば、それはコンパイルされなかっただろう==

于 2012-12-13T12:39:09.237 に答える