1

次のようなコードがあります。

public Flight{
String code;
char status;
char type;

   Flight(String code, char status, char type){
    this.code = code;
    this.status = status;
    this.type = type;
   }
 }


public Menu{
 Flight flight1 = new Flight("DL123",'A','D');
 Flight flight2 = new Flight("DL146",'A','I');
 flightMap.put("DL123", flight1)
 flightMap.put("DL146", flight2)
 }


  if(schedule.flightMap.containsKey(decision))
  {

  }

ユーザーが DL123 を入力し、containsKey が true を返した場合、 flight1 のオブジェクト属性のみを返したいと考えています。どうすればこれを行うことができますか?toString を上書きしようとしましたが、toString は文字列としてしか返せないため、文字である status 属性と type 属性を返す方法がわかりません。

さらに情報が必要な場合はお尋ねください。

4

4 に答える 4

3

クラスでgetterメソッドを定義してから:Flight

 if(schedule.flightMap.containsKey(decision)){
   Fligth matchingFlight = schedule.flightMap.get(decision);
   String code = matchingFlight.getCode();
   char status = matchingFlight.getStatus();
   char type = matchingFlight.getType();
 }
于 2012-12-21T04:09:47.043 に答える
1

フライト フライト = schedule.flightMap.get(決定);

次に、フライトオブジェクトから、すべての値を取得できます

于 2012-12-21T04:10:33.887 に答える
1

あなたが必要とするものは

Flight flight = schedule.flightMap.get(decision);

これらを使用すると、オブジェクトの可視性がデフォルトでこのように設定されているため、オブジェクトに簡単にアクセスできます

flight.code
flight.status

しかし、より倫理的な方法は、このようにすべての変数のゲッターとセッターを定義することです

public void setCode(String code)
{
     this.code = code;
}
public String getCode()
{
    return this.code;
}

このようにして、これを使用して変数を取得できます

String code = flight.getCode();

こちらも参照

Java でゲッターとセッターを使用する理由

于 2012-12-21T04:15:00.603 に答える
0

私はあなたの質問を解決しようとし、結論に達しました。以下のコードを参照してください。

package com.rais;

import java.util.HashMap;
import java.util.Map;

/**
 * @author Rais.Alam
 * @project Utils
 * @date Dec 21, 2012
 */


public class FlightClient
{
/**
 * @param args
 */
public static void main(String[] args)
{
    Map<String,Flight> flightMaps = new HashMap<String, Flight>();
    Flight flight1 = new Flight("DL123", "STATUS-1", "TYPE-1");
    Flight flight2 = new Flight("DL124", "STATUS-2", "TYPE-2");
    Flight flight3 = new Flight("DL125", "STATUS-3", "TYPE-3");

    flightMaps.put("DL123", flight1);
    flightMaps.put("DL124", flight2);
    flightMaps.put("DL125", flight3);

    System.out.println(getValue(flightMaps, "DL123"));


}


public static String getValue(Map<String,Flight> flightMaps, String key)    
{
    if(flightMaps !=null && flightMaps.containsKey(key))
    {
        return flightMaps.get(key).status;
    }
    else
    {
        throw new RuntimeException("Flight does not exists");
    }


    }
}

    class Flight
    {
    String code;
    String status;
    String type;
    /**
     * @param code
     * @param status
     * @param type
     */
    public Flight(String code, String status, String type)
    {
        super();
        this.code = code;
        this.status = status;
        this.type = type;
    }



}
于 2012-12-21T04:28:15.933 に答える