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。 –