Javaのenumを理解しようとしていますが、現在質問している質問を説明する記事が見つかりません。インタフェースまたはクラスのJava enum配置
私はPerson
インターフェイスとPersonEO
クラスを持っています。 Personインタフェースの2つのメソッドはsetGenderとgetGenderです。私は性別を列挙型として保持したいと思います。
インターフェイスで列挙型を作成し、それがクラスに持ち越されるのか、クラスで列挙型にするのですか?
これは現在私が試してきたものですが、クラスに適切に渡す列挙を得ることができず、プログラムを通してどのように流れていくのかを実際に理解していません。
public interface Person{
public enum gender{
Female,
Male,
Unknown;
private String gender;
public String getGender(){
}
void setGender(){
}
}
------------------------------------------------------
public class PersonEO implements Person {
//Both override methods are not seen as methods from the interface
@Override
public String getGender() {
return gender;
}
@Override
public void setGender() {
//Not sure how to set the gender from the enum
this.gender = gender;
}
}
例を示してください。
メンバ変数Genderを作成し、セッタとゲッターで使用します。 – Enzokie
一般的に言えば、あなたのenumタイプにはsetterはありません。 –
'Person.gender'のコード(' Gender'にする必要があります)に空のメソッド 'setGender'が宣言されました。その命名規則は、値を渡すためのメソッド引数がないことを意味します。 'ジェンダー'( 'ジェンダー')の 'setGender'メソッドが何をしようとしていたのかは不明ですが、何を設定するのかは定かではありません。間違ってはいませんが、正確には列挙定数の目的のためにちょっとしたものです。同じ定数が多くのコンテキストで使用されるため、それらは状態を正常に保持すべきではありません。また、人は右中括弧を欠いていた。 –