![](/img/trans.png)
[英]Get reference to Java Enum that implements an interface from enum class name
[英]How to get member name from Interface that acts at Enum, Java
假設我有以下接口:
public interface NUMS {
public static final int ZERO = 0;
public static final int ONE = 1;
public static final int TWO = 2;
}
然后我有一個返回 0-2 之間 int 的函數。 是否有任何選項可以獲取該數字在接口中代表的成員名稱?
前任:
函數返回 1,我想將它映射回 ONE,而不使用 Map/Array。
謝謝!
從技術上講,使用反射:
String getConstantName(int value) {
// use reflection to check all fields of NUMS
for (Field f : NUMS.class.getFields()) {
try {
if (f.getInt(null) == value) {
return f.getName();
}
} catch (IllegalAccessException e) {
// ignore
}
}
return "";
}
但這只是為了教育目的,請不要在實際代碼中使用這樣的方法。 正如其他人建議的那樣,只需使用enum
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.