<span style="font-size:24px;">1,怎样自定义枚举类?
自定义枚举类的方法为enum 后加你想要的名字,而enum前只能加public或者不加任何东西。枚举类是一个类,它可以有自己的属性,一般方法,构造方法。并且可以有多个。枚举类内可以有枚举常量也可以没有。枚举常量实际上是一个枚举类的子类对象。枚举常量{}内是不能有构造方法的,可以有其它方法,属性,方法可以是继承或重载@Override枚举类的方法。
枚举常量后可跟()和{},如果二者都有,()在{}前。()的使用主要是看枚举类有没有显示的构造方法,()的使用就根据构造方法来进行实例化。枚举常量实际是必须实例化的,如果枚举类没显示构造方法,那么枚举常量名后可以不跟()。但是枚举常量也是实例化得,因为枚举会类会有一个默认的构造方法。就像一般空类,也有构造方法一样。
枚举常量之间用,分隔,最后一个枚举常量后跟着是分号(;)。
和以下代码一起阅读:
import java.util.List;
import java.net.URL;
public enum PropertyType {
INT("int") {
@Override protected boolean validateString(String obj) throws Exception {
Integer.parseInt(obj);
return true;
}
},
COMPONENT_LIST("ComponentList", List.class),
STRING("String", String.class),
RESOURCE("Resource") {
@Override
public boolean validateString(String obj) throws Exception {
if (obj.toLowerCase().startsWith("resource:/"))
return true;
if (obj.indexOf(':') == -1)
obj = "file:" + obj;
new URL(obj);
return true;
}
},
STRING_LIST("StringList", List.class);
private final String displayName;
private Class<?> checkClass;
private PropertyType(String displayName) {
this.displayName = displayName;
}
private PropertyType(String displayName, Class<?> checkClass) {
this.displayName = displayName;
this.checkClass = checkClass;
}
public String toString() {
return displayName;
}
protected boolean validateString(String obj) throws Exception {
return true; // default implementation
}
}
</span>
怎样自定义枚举类
最新推荐文章于 2024-08-06 23:51:07 发布