2011-12-02 6 views
3

ファイルから文字列をロードしてオブジェクトenumに入れます。ファイルオブジェクトからロードEnum

私はクラスにこの作成:ここ

Passenger p=new Passenger(p_name,What should i put here)? 

されています。私は、ファイルを読んで、私はそのようなオブジェクトの乗客を作成することができるように、文字列を入れたい別のファイルに

public Passenger{ 

private String pass_name; 
public enum State{ 

b,c,d; 

}; 
.... 

State reser; 

public Passenger(String n,State r) 
     pass_name=n; 
     reser=r; 
} 

を私のファイルの構造:

cod 
passenger_name 
reverved 

大文字と乗客は文字列でラップされますenumを介して嫌がらせをする。あなたが列挙型にファイルから読み込んだ文字列に変換する

BufferedReader reader=new BufferedReader(new FileReader(fname)); 

String cod=reader.readLine(); 
while(cod!=null){ 
     String p_name=reader.readLine(); 
     how can i load a enum type? 

     Passenger p=new Passenger(p_name,What should i put here)? 
     cod=reader.readLine(); 

} 
+0

コンパイル可能で問題を示すコード例を使用するか、少なくとも実行するために多くの変更を必要としないようにしてください。 – millimoose

+0

残念なことに私はコードcompilable.My問題はない私はテキストファイルから文字列を読み取って、オブジェクトの乗客を作成するときにこの列を型enumに読み込む方法を知らないです – Mazzy

+0

最初のサンプルコードも 'class 「乗客の前に」。それには、欠けているコードを示すために '....'と余計な行があります。コメントを付けるか、関連性がない場合はそのまま残しておいてください。あなたはコンストラクタで '{'をオープンしていません。 "列挙型をロードするにはどうすればいいですか?" 「ここに入れなければならないことは何か」をコメントに入れる必要があります。シンタックスの強調表示によってプレースホルダの位置付けが容易になります。 2番目のコードサンプルには、 '?'で終わる行があります。これは、質問を終わらせるためのものです。 – millimoose

答えて

3

使用YourEnumType.valueOf:私は、ファイルを読み込みます

public class Passenger { 
    public static enum State { 
     New, 
     Reserved, 
     Paid 
    } 

    private String name; 
    public State state; 

    public Passenger(String name, State state){ 
     this.name = name; 
     this.state = state; 
    } 

    public String toString() { 
     return String.format("Passenger{name='%s', state=%s}", name, state.name()); 
    } 
} 

class Main { 
    public static void main(String[] args) { 
     // line read from file 
     String stateString = "Reserved"; 
     // convert string into state 
     Passenger.State state = Passenger.State.valueOf(stateString); 

     // create the passenger 
     Passenger pass = new Passenger("John Doe", state); 
     System.out.println(pass); 
    } 
} 

を(私はあなたのサンプルコードのクリーンバージョンを作るの自由を取りました。 )

ファイル内の文字列が、大文字を含むenum定数の名前と同じで、余分な空白が含まれていないことを確認してください。

+0

ありがとうございました。すべてがclear.thanksです。 – Mazzy

+0

@ user1055637投票ボタンの下にあるチェックマークを使用して問題を解決する回答を受け入れる必要があります。 – millimoose

関連する問題