2016-07-07 6 views
-2

私はenumをJavaで使用する初心者で、Stringまたはintのような他の型の代わりに使用したいと思います。これ以下のコードではenumという値を持っていて、それをクラスConstructorから設定して、getterで取得してください。私のコードは正しくありません。グーグルでは解決できないようです。Javaは他の型の代わりにenum値としてクラスを定義します

アドバンテージありがとうございます。あなたのコードは以下のようにする必要があり

public class SampleEvent { 
    private enum path { 
     LEFT , 
     RIGHT 
    } 

    public SampleEvent(path p) { 
     path = p; 
    } 

    public enum getPath(){ 
     return path; 
    } 
} 

答えて

1

です正しい戻り値の型。

また、enum publicを作成する必要があります。そうしないと、クラス外のコンストラクタを呼び出すことができなくなります(クラス外のコードは列挙型にアクセスできなくなります)。

public class SampleEvent { 
    public enum Path { 
     LEFT, RIGHT 
    } 

    // Member variable 
    private Path path; 

    // Constructor 
    public SampleEvent(Path p) { 
     path = p; 
    } 

    public Path getPath() { 
     return path; 
    } 
} 
+0

ありがとうございました –

+0

@Jesper Pathフィールドが最終的になると主張しますか?つまり、SampleEventが不変であることを意味する場合はもちろんです。 – Fildor

+0

@Fildorはい、私は答えにあまり情報を入れたくありませんでした。クラスを不変にすることはしばしば良い考えです。 – Jesper

4

..

​​

、出力はあなたが列挙型のメンバ変数を作成する必要があり、そしてあなたのgetPath方法は持つべきLEFT

+1

をお試しください: '民間最終パスのval;'私はまた、パスの列挙名が従うことを「パス」で作ると思います命名規則。 – Fildor

+0

そしてEnumは公開されるべきです。 – Fildor

+0

@FildorTanks入力のため –

0

SampleEventは不変することができた場合は、それがそうなるように、おそらく望ましいです。この

public class SampleEvent { 

    public enum Path { 
     LEFT , 
     RIGHT 
    } 

    private Path path; 

    public SampleEvent(SampleEvent.Path path) { 
     this.path = path; 
    } 

    public SampleEvent.Path getPath() { 
     return path; 
    } 
} 
関連する問題