java枚舉實現命名空間層級限定

實現思路:通過遞歸調用實現枚舉限定命名空間

枚舉類: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();
		}
	}
}


發佈了38 篇原創文章 · 獲贊 16 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章