我在Java中有一个对象,我试图用下面的结构从枚举类中设置它。
public enum Code {
CODE_A,
CODE_B,
CODE_C,
CODE_D,
CODE_E,
CODE_F,
EMPTY("")
}希望将我的对象设置为空sting值。即Object.setCode(Code.EMPTY)
当我查看我的对象时,它应该将""而不是空作为属性代码的值。
有人能建议我能用什么解决办法吗?我不想修改Object.setCode设置器,如下所示:
public void setCode(Code code) {
this.code = code;
}问题还在于Object.setCode(MustBe of Object-Code Type only)
发布于 2016-10-21 05:28:13
您可以简单地为每个枚举分配一个值,并覆盖toString()方法,以便调用Code.EMPTY返回值"“而不是”空“
enum Code{
CODE_A("STRING_A"),
CODE_B("STRING_B"),
EMPTY("");
// Assigning a value to each enum
private final String code;
Code(String code){
this.code = code;
}
// Overriding toString() method to return "" instead of "EMPTY"
@Override
public String toString(){
return this.code;
}
}因此,运行Code.CODE_A将返回"STRING_A“
运行Code.EMPTY将返回"“
发布于 2016-10-21 05:15:34
尝尝这个。
public enum Code {
CODE_A,
CODE_B,
CODE_C,
CODE_D,
CODE_E,
CODE_F,
EMPTY("");
final String name;
Code(String name) { this.name = name; }
Code() { this(null); }
@Override
public String toString() {
return name == null ? super.toString() : name;
}
}和
System.out.println("CODE_A=" + Code.CODE_A);
System.out.println("EMPTY=" + Code.EMPTY);结果:
CODE_A=CODE_A
EMPTY=发布于 2016-10-21 05:16:04
要将枚举值设置为字符串值吗?它是不相容的,所以它不会起作用。试试这个:
public class Main {
public static class Code {
public static final String CODE_A = "A";
public static final String CODE_B = "B";
public static final String CODE_C = "C";
public static final String EMPTY = "";
}
private String Code;
public void setCode (String code){
this.code = code;
}
}如果你现在说:
setCode (Main.Code.EMPTY);“Main”实例的变量“代码”将是空字符串。
https://stackoverflow.com/questions/40168744
复制相似问题