问题已经回答了.多谢你们.
我有一个枚举,它有字符串的参数.我可以为这些变量设置制定者吗?
public enum Blah {
Monday("a"), Tuesday("b");
}
private final String letter;
Blah(String letter){
this.letter = letter;
}
Run Code Online (Sandbox Code Playgroud)
我被允许这样做:
public String setLetter(String letter){
this.letter = letter;
}
Run Code Online (Sandbox Code Playgroud)
Mat*_*all 11
您需要删除该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;
}
}
Run Code Online (Sandbox Code Playgroud)
但是,通常不建议在枚举中具有可变状态.
小智 5
更新:枚举类型中可以有设置器。
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
}
Run Code Online (Sandbox Code Playgroud)
}