我正在研究一个Java应用程序,其中我需要读取一个String实例变量,并且遇到两个$符号(即$ sample $)之间的值时,请将其替换为适当的值。“样本”部分对应于我的代码中其他几个实例变量之一的名称,因此我需要做的是将“样本”提取为String,然后以某种方式使用它来获取名为sample的实例变量的值。 。除了使用哈希映射的一些预定义键,值对之外,还有什么方法可以做到这一点?
1 回答
慕的地6264312
TA贡献1817条经验 获得超6个赞
您可以为此使用反射和辅助方法:
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");
该片段使用Class#getDeclaredField(String)@aszro在评论中建议的方式。此方法按名称返回该字段,NoSuchElementException如果不存在该字段,则抛出。
添加回答
举报
0/150
提交
取消