簡體   English   中英

如何從作用於枚舉、Java 的接口中獲取成員名稱

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM