为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕村225694 2021-04-26 21:18:49
我正在研究一个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如果不存在该字段,则抛出。


查看完整回答
反对 回复 2021-05-12
  • 1 回答
  • 0 关注
  • 872 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信