我有一个HashMap和一个名为Plugin的类,它包含需要从我提到的地图映射的所有变量。 我只想根据该键在类中声明的变量类型来转换键的值(在Map中)。 让我们说,
- >地图条目: 。 。 结果:“成功” 。
- >插件类中的变量
private String result;
现在我想将键“result”的值转换为Plugin类中的变量结果类型。 我尝试使用
this.result = this.result.getClass().cast(map.get("result"));
这也是
this.result = (this.result.getClass())map.get("result");
由于
答案 0 :(得分:0)
就像呼吸一样简单:
result = (String) map.get("result");
或者
result = map.get("result").toString();
答案 1 :(得分:0)
实际上,由于早期绑定,这种“动态转换”在Java中是不可能的。编译器检查,右侧部分中的类型是否是左侧部分类型的子类型。
this.result.getClass()
返回Class
类型的变量,其值在编译器时间内未知,因此编译器不知道强制转换结果的类型,因此无法将强制转换的结果分配给{{1} } field。
你可能会因反思而变得混乱,但这不适合你的情况。
我建议您使用BeanUtils.populate(Plugin pligin, Map map)转移您的媒体资源。
另见java: how can i do dynamic casting of a variable from one type to another?