2014-10-30 486 views
0

編譯我的代碼時出現此錯誤。請幫我看看這個 -put(java.lang.String,java.lang.Inte ger)in java.util.Map <java.lang.String,java.lang.Integer>不能應用於(java.lang.String,java.lang.Object)。字符串)

代碼

mapConnectionProperties = new HashMap<String, Integer>(); 
         mapConnectionProperties.put(mobileSeriesMappingDTO 
           .getExternalIP(), mobileSeriesMappingDTO.getExternalPort()); 
+0

哪些錯誤? getExternalIP()和getExternalPort()返回什麼? – MABVT 2014-10-30 09:56:02

+2

閱讀錯誤:您試圖將兩個字符串傳遞給接受字符串和整數作爲參數的方法 – BackSlash 2014-10-30 09:56:35

+0

看起來像一個非常明確的錯誤消息。 – khelwood 2014-10-30 09:58:30

回答

2

mobileSeriesMappingDTO.getExternalPort()是貌似String。將其轉換爲Integer

Integer.parseInt(mobileSeriesMappingDTO.getExternalPort()) 
+0

或使地圖成爲的地圖,因此您不需要。 – 2014-10-30 09:56:56

+0

假設端口是指網絡端口號,那麼轉換爲int就更有意義了。與String相比,int具有更少的無效值來表示端口號。 – Synesso 2014-10-30 12:45:53

+0

Synesso是對的......儘管它取決於上下文,不是嗎? – 2014-10-30 13:56:30

0

mobileSeriesMappingDTO.getExternalPort()給出了一個字符串,

它轉換爲一個整數:

Integer.parseInt(mobileSeriesMappingDTO.getExternalPort()) 
+0

getExternalIP正在檢索字符串,getExternalPort正在檢索int。兩者都檢索正確的數據。另外,當我通過eclipse編譯時,它不會給出錯誤,但是當通過Ant進行編譯時,它會給出這個轉換錯誤並顯示編譯失敗。 – 2014-10-30 10:01:13

相關問題