-4

飛行機をループしてすべての乗客を取得し、それらをカウントに追加して、すべての飛行機のすべての乗客を表示したいと思います。しかし、エラーが発生しました:配列またはインスタンスを反復処理できません。

メソッドは次のとおりです。

public int getAllPassengers()
    {
        int passengers = 0;
        for(Plane plane : plane.getPassengerNumber())
        {
            passengers += plane.getPassengerNumber();
        }
        return passengers;
    }

飛行機

import java.util.LinkedList;

public class Plane implements Comparable
{   
    private String flightNumber;
    public String airlineName;
    private double fuelRemaining;
    private int overdue;
    private int passengerNumber;
    private AIRPLANETYPE planeType;
    private boolean isLanded = false;

    public enum AIRPLANETYPE
    {
        AIRBUS("1"), CORPORATE("2"), PRIVATE("3");

        private String planeName;

        private AIRPLANETYPE(String planeName)
        {
            this.planeName = planeName;
        }

        public String getPlaneName()
        {
            return this.planeName;
        }
    }

    public Plane(String flightNumber, String airlineName,
           double fuelRemaining, int overdue, int passengerNumber, 
           AIRPLANETYPE planeType, boolean isLanded) 
    {
        this.flightNumber = flightNumber;
        this.airlineName = airlineName;
        this.fuelRemaining = fuelRemaining;
        this.passengerNumber = passengerNumber;
        this.overdue = overdue;
        this.planeType = planeType;
        this.isLanded = isLanded;
    }


    public Plane() 
    {

    }


    public String getAirlineName() {
        return airlineName;
    }

    public void setAirlineName(String airlineName) {
        this.airlineName = airlineName;
    }


    public void setOverdue(int overdue) {
        this.overdue = overdue;
    }

    public int getOverdue(){
        return overdue;
    }

    public String getFlightNumber() {
        return flightNumber;
    }

    public void setFlightNumber(String flightNumber) {
        this.flightNumber = flightNumber;
    }

    public double getFuelRemaining() {
        return fuelRemaining;
    }

    public void setFuelRemaining(double fuelRemaining) {
        this.fuelRemaining = fuelRemaining;
    }

    public int getPassengerNumber() {
        return passengerNumber;
    }

    public void setPassengerNumber(int passengerNumber) {
        this.passengerNumber = passengerNumber;
    }

    public AIRPLANETYPE getPlaneType() {
        return planeType;
    }

    public void setPlaneType(AIRPLANETYPE planeType) {
        this.planeType = planeType;
    }


    public boolean isLanded() {
        return isLanded;
    }


    public void setLanded(boolean isLanded) {
        this.isLanded = isLanded;
    }


    public int compareTo(Object arg0) {
        if((arg0 != null) && (arg0 instanceof Plane))
        {
            Plane p = (Plane) arg0;
            return (int)Math.ceil(this.overdue - p.getOverdue());
        }
        return 0;
    }
    public String toString() {
        return "Plane: flightNumber=" + flightNumber + "."
                + " airlineName=" + airlineName + "."
                + " fuelRemaining=" + fuelRemaining + " litres."
                + " overdue=" + overdue + " minutes."
                + " passengerNumber="+ passengerNumber + "."
                + " airplaneType=" + planeType +
                "hasLanded=" + isLanded+ ".\n";
    }
}
4

3 に答える 3

5

passengerNumberですintIterable次のようなものを反復処理する必要がありますArrayList

for (Plane plane: myPlaneList) {
  passengers += plane.getPassengerNumber();
}
于 2012-12-13T14:28:53.100 に答える
4

Plane オブジェクトを繰り返し処理しようとしていますが、コレクションは単なる int です。Plane オブジェクトのコレクションが必要です

int passengers = 0;
for(Plane plane : myPlanes)
{
    passengers += plane.getPassengerNumber();
}
于 2012-12-13T14:30:31.673 に答える
3

を反復しようとしていintます。 を反復する必要がありますjava.util.Iterable

投稿されたコードには、この質問に答えるために必要な情報が含まれていません。

あなたは私たちにクラスを見せていますがPlane、複数の平面を持つために、おそらくコードのどこかにaList<Plane>または aがあります。Plane[]これがうまくいく一例です:

public class Main {
  List<Plane> allPlanes; // Load in the omitted code somewhere else

  public int getAllPassengers()
  {
    int passengers = 0;
    for(Plane plane : allPlanes) // note the change
    {
        passengers += plane.getPassengerNumber();
    }
    return passengers;
  }
}
于 2012-12-13T14:29:18.347 に答える