實現思路:通過遞歸調用實現枚舉限定命名空間
枚舉類:Type
public enum Type {
China(null, "中國"), Chongqing(China, "重慶"), Yuzhongqu(Chongqing, "渝中區");
private Type parent;
private String area;
private Type(Type parent, String area) {
this.parent = parent;
this.area = area;
}
public Type getParent() {
return parent;
}
public void setParent(Type parent) {
this.parent = parent;
}
public String getArea() {
return area;
}
public void setArea(String area) {
this.area = area;
}
}
遞歸調用實現命名空間限定
public class TestEnumExtend {
public static void main(String[] args) {
String wholeName = new TestEnumExtend().getTotalAreaName(Type.Yuzhongqu);
System.out.println(wholeName);//中國重慶渝中區
}
private String getTotalAreaName(Type type) {
Type parent = type.getParent();
if (parent == null) {
return type.getArea();
} else {
//遞歸調用
return getTotalAreaName(parent)+type.getArea();
}
}
}