簡體   English   中英

如何創建對常量的動態引用?

[英]How Can I create a dynamic reference to a Constant?

我想根據字段名稱進行動態調用以從 Constants.java 獲取常量?

前任。

public class Constants {
  
  public static final String FIELD1 = "field1";
  public static final String FIELD2 = "field2";
}

以及如何根據字段參數獲得價值?

private String getConstant(String field){
  //field parameter can be many values for field paramter not just Field1 or Field2
  return Constant.field;
}

您需要閱讀有關反射機制的信息。 嘗試這個:

private String getConstant(String field) throws NoSuchFieldException, IllegalAccessException {
  // one field only:
  return Constants.class.getField(field).get(null);
}

看起來你需要一個enum (類似於常量):

public enum Constant {
    FIELD1("field1"),
    FIEL21("field2"),
    // etc
    ;
    private String str;

    Constant(String str) {
        this.str = str;
    }
    
    public String getStr() {
        return str;
    }
}

然后獲取字符串:

private String getConstant(String field) {
    return Constant.valueOf(field).getStr();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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