根据Java中的字符串名称获取变量的值

我正在研究一个Java应用程序,其中我需要读取一个String实例变量,并且遇到两个$符号(即$ sample $)之间的值时,请将其替换为适当的值。

“样本”部分对应于我的代码中其他几个实例变量之一的名称,因此我需要做的是将“样本”提取为String,然后以某种方式使用它来获取名为sample的实例变量的值。 。除了使用哈希映射的一些预定义键,值对之外,还有什么方法可以做到这一点?


慕村225694
浏览 878回答 1
1回答

慕的地6264312

您可以为此使用反射和辅助方法: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如果不存在该字段,则抛出。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java