[英]java enums but like public static final int?
我想要一個與整數1,2,3相關的常量列表,如A,B,C
我知道你可以這樣做
class Example {
public static final int A = 1;
etc...
}
和
enum Example {
A(1), ... etc;
some initialization of an integer
}
但有沒有辦法像公共靜態決賽那樣做,但像枚舉一樣簡潔? 當我使用A時,我的意思是1我不想調用Example.A.value或類似的東西。
一種方法是使用接口,默認情況下變量是public,static和final:
interface Example {
int A = 1;
int B = 2;
}
如果我理解你正確的要求,你想做這樣的事情:
enum Example {
A = 1,
B = 2,
....
}
這沒有簡單的語法。
你要么必須寫出一些常量:
public interface Example {
public static final int A = 1;
public static final int B = 2;
....
}
...或者您可以為枚舉添加一些其他value
:
public enum Example {
A(1),
B(2)
....
private final int val;
public Example (int val) {
this.val = val;
}
public int getValue() {
return val;
}
}
我認為最短的解決方案是:
public static final int A = 1, B = 2, C = 3;
如果你真的想使用Enum,那么你可以覆蓋枚舉中的toString()方法,以便在打印枚舉實例時獲得打印值: -
enum Example {
A(1), B(2);
private int val;
private Example(int val) {
this.val = val;
}
@Override
public String toString() {
switch (this) {
case A:
return String.valueOf(val);
case B:
return String.valueOf(val);
}
return super.toString();
}
}
public class D {
public static void main(String[] args) {
Example a = Example.A;
Example b = Example.B;
System.out.println(a); // Prints 1
System.out.println(b); // Prints 2
}
}
理想情況下,您的上述枚舉就像下面的類: -
class Example {
public static final int A = 1;
public static final int B = 2;
}
所以,我沒有看到使用Enums的必要性..
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.