0
我有对象的集合:爪哇 - 通用吸气
public LinkedHashMap<String, Object> objectList;
,我希望得到一个字符串值,或用此方法整型值:
public Object getValue(String key) {
if (objectList.get(key) instanceof String) {
return ((String) objectList.get(key));
}
}
后,我想用这个获得者:
String value = getValue("someKey");
但是这不起作用,我不知道为什么。 getter返回Object,但如果这是String的实例,我将它转换为String。
你能告诉我为什么它不起作用吗?或者其他解决方案。
谢谢。
该方法的返回类型是Object,所以不管你在方法内部做了什么,返回的引用类型都是Object。在这种情况下,您必须在它返回后将其转换为“String”。 – Zircon
你认为你把它转换为String的位置?你没有。你也可以写'public T getValue(String key)',那么你就不需要投射了。方法实现应该说'return(T)objectList.get(key);' –
这段代码不能编译,顺便说一句,因为如果值不是字符串,你不会返回任何东西。你也应该选择更好的名字:objectList应该引用一个List,而不是Map。 –