質問は既に回答済みです。みんなありがとう。enumはJavaでセッターを持つことができますか?
私は列挙型を持ち、Stringsのパラメータを持っています。 私はこれらの変数の設定を許可していますか?
public String setLetter(String letter){
this.letter = letter;
}
質問は既に回答済みです。みんなありがとう。enumはJavaでセッターを持つことができますか?
私は列挙型を持ち、Stringsのパラメータを持っています。 私はこれらの変数の設定を許可していますか?
public String setLetter(String letter){
this.letter = letter;
}
フィールドはfinal
としてマークされているので、これは動作しません:
public enum Blah {
Monday("a"), Tuesday("b");
}
private final String letter;
Blah(String letter){
this.letter = letter;
}
は私がさせて頂いております。
原則として、列挙型が可変フィールドを持つことを妨げるものは何もありません。しかし、これはめったに良い考えではありません。
は、あなたはそれが設定可能であるためには、フィールドのfinal
修飾子を削除する必要があります。
public enum Blah {
Monday("a"), Tuesday("b");
private String letter;
private Blah(String letter){
this.letter = letter;
}
public void setLetter(String letter){
this.letter = letter;
}
}
しかし、一般的に推奨されていない列挙型で変更可能な状態を有します。
public class EnumExample {
public enum Blah {
Monday("a"), Tuesday("b");
private String letter;
private Blah(String letter){
this.letter = letter;
}
public void setLetter(String letter){
this.letter = letter;
}
public String getLetter(){
return letter;
}
}
public static void main (String[] args) {
System.out.println("The Value of Monday is "+ Blah.Monday.getLetter());//prints a
System.out.println("The Value of Tuesday is "+Blah.Tuesday.getLetter());//prints b
}
}
更新:setterを列挙型にすることは可能です。列挙型で
public class Main {
public enum Account {
ACCOUNT("NAME");
private String name;
private Account(String name){
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
public static void main(String[] args) {
System.out.println(Account.ACCOUNT.getName()); // print NAME
Account.ACCOUNT.setName("NEW");
System.out.println(Account.ACCOUNT.getName()); // print NEW
}
}
それが最終的として変数を宣言することは常に良い考えです。上記の例では行われていないので、値を別のものに設定することができます。
どのようなプログラミング言語ですか?あなたが参照しているコードの代表例を見せてください。 –
特定のプログラミング言語を使用していますか? – Guffa
私はJavaを使用しています。 – user2149780