我正在研究一个Java应用程序,其中我需要读取一个String实例变量,并在遇到两个$符号之间的值(即$ sample $)时,将其替换为适当的值。
“样本”部分对应于我的代码中其他几个实例变量之一的名称,因此我需要做的是将“样本”提取为字符串,然后以某种方式使用它来获取实例的值变量称为样本。 除了使用哈希映射的一些预定义键,值对之外,还有什么方法可以做到?
答案 0 :(得分:0)
您可以为此使用反射和辅助方法:
public static Object getFieldValue(Object target, String fieldName){
// get field from class
Field field = target.getClass().getDeclaredField(fieldName);
// set accessability to "public"
field.setAccessible(true);
try{
// get value
return field.get(target);
} catch(IllegalAccessException e){
// or throw error
throw new IllegalStateException(e);
}
}
然后可以使用以下命令轻松调用它:
Object value = getFieldValue(this, "sample");
如@aszro在评论中所建议,该代码段使用Class#getDeclaredField(String)
。此方法按名称返回该字段,如果不存在该字段,则抛出NoSuchElementException
。