我記得有一種資料結構保證某個字串只能接收特定的值,它的作用就像一個介面什么的。我不記得這個資料結構的確切名稱,也不容易找到。
讓我試著解釋一下背景關系。
假設我有一個名為 Foo 的類,其引數為 position。
Class Foo {
public static final String TOP = "TOP";
public static final String BOTTOM = "BOTTOM";
public static final String MIDDLE = "MIDDLE";
private String position;
Foo(String position){
this.position = position;
}
}
如果我為位置分配值 TOP、BOTTOM 或 Middle,position 將被接受。如果我分配另一個值,它將拋出例外。
new Foo(Foo.TOP) // OK
new Foo(Foo.MIDDLE) // OK
new Foo(Foo.BOTTOM) // OK
new Foo("anystring") // Throws Exception.
我知道我可以做一個簡單的 if else 或 switch 并拋出例外,但我想找到這個特定的資料結構。
uj5u.com熱心網友回復:
你應該使用列舉來解決這個問題。
Class Foo {
public static enum Position {TOP, BOTTOM, MIDDLE};
private Position position;
Foo(String position){
this.position = Position.valueOf(position);
}
}
但請記住:列舉不是String. 但是在列舉上你可以呼叫toString(),也可以像我一樣決議一個Stringto 。enum
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/536994.html
標籤:爪哇细绳班级哎呀
下一篇:難以實體化子類[物件沒有屬性]
