java - 将 String 转换为使用反射获得的值
问题描述
所以我得到一个值,我知道它是来自另一个使用反射的类的字符串,但是当我尝试将 (String) 转换为它时,会抛出 ClassCastException,因为 String 无法转换为字段。有人能帮我吗?
public static void main(String[] args) throws NoSuchFieldException {
Utils utils = new Utils();
Field field = utils.getClass().getDeclaredField("myString");
field.setAccessible(true);
String myString = (String) field;
}
解决方案
所以,field
是 的一个对象java.lang.reflect.Field
。所以你不能把它转换成字符串。您需要从中获取字符串对象utils
。为此,您应该使用Field#get()
将object
(在您的情况下它将是utils
)作为参数的方法。
String myString = (String) field.get(utils);
推荐阅读
- phpstorm - 受保护的属性数组声明始终在换行符上,但我希望它在同一行
- wordpress - 我的代码正在复制我的 wp 帖子
- javascript - 如何在 PHP 中隐藏来自 weppalyzer 的 css 和 js 版本详细信息
- c# - Fixer IO Sharp Api 响应“由于一个或多个原因无法获取 CurrencyResult”
- java -
预期得到 在春季数据休眠中 - entity-framework-6 - 内存集成测试中的 Web API - 两个服务之间的身份验证
- excel - 任何类型字符(数字或文本)的 Excel 高级筛选条件
- java - 模式生成期间的 SAXParseException 未提供无效的 xsd 名称
- php - Facebook 登录 URL 被阻止问题
- python - 在两个 Pandas 数据框中找到一对多的匹配项