标签:inter comm @param 实例 static 其他 string for api
java中枚举的常见用法
概念:
首先枚举是一个特殊的class,所有的枚举都继承自java.lang.Enum类。由于Java 不支持多继承,所以枚举对象不能再继承其他类
他的构造方法强制被私有化。每个枚举变量都是枚举类的实例,每个成员变量都是final static修饰
public enum ColorEnum { //每个枚举变量都是枚举类ColorEnum的实例,相当于RED=new ColorEnum(1),按序号来。 //每个成员变量都是final static修饰 RED, GREEN, BLANK, YELLOW; }
public enum TypeEnum { FIREWALL("firewall"), SECRET("secretMac"), BALANCE("f5"); private String typeName; TypeEnum(String typeName) { this.typeName = typeName; } /** * 根据类型的名称,返回类型的枚举实例。 * * @param typeName 类型名称 */ public static TypeEnum fromTypeName(String typeName) { for (TypeEnum type : TypeEnum.values()) { if (type.getTypeName().equals(typeName)) { return type; } } return null; } public String getTypeName() { return this.typeName; } }
为什么要通过枚举实现接口呢?考虑如下需求:
1.我希望通过接口定义API
2.我希望接口的实现类有限,并且每个实现类都只需要一个实例
此时,可以利用枚举类型实例受限的特效,通过枚举实现接口,从而达到我们的需求。
public interface FlyAble {
public void fly();
public String getName();
}
public enum FlyType implements FlyAble{
Bird("鸟") {
@Override
public void fly() {
System.out.println("鸟用翅膀飞...");
}
},
Plane("飞机") {
@Override
public void fly() {
System.out.println("飞机用引擎飞...");
}
}
;
private String name;
private FlyType(String name) {
this.name = name;
}
@Override
public String getName() {
return name;
}
}
标签:inter comm @param 实例 static 其他 string for api
原文地址:https://www.cnblogs.com/dw3306/p/13215491.html