2014-10-30 3 views
0

Я получаю эту ошибку при компиляции моего кода. Пожалуйста, помогите мне с this-put (java.lang.String, java.lang.Inte ger) в java.util.Map <java.lang.String, java.lang.Integer> нельзя применить к (java.lang.String, java.lang. String)

код

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

Какие ошибки? Что возвращают getExternalIP() и getExternalPort()? – MABVT

+2

Прочитать ошибку: Вы пытаетесь передать две строки методу, который принимает строку и целое число в качестве аргументов – BackSlash

+0

Похоже на очень четкое сообщение об ошибке. – khelwood

ответ

2

mobileSeriesMappingDTO.getExternalPort(), казалось бы, String. Преобразуйте его в Integer.

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

или сделать карту карты , так что вам не нужно. –

+0

Предполагая, что порт относится к номеру сетевого порта, тогда имеет смысл преобразовать в int. У int намного меньше недопустимых значений для представления номера порта, чем строка. – Synesso

+0

Synesso прав ... хотя это зависит от контекста, не так ли? –

0

Ваш mobileSeriesMappingDTO.getExternalPort() дает строку,

преобразование его в Integer с:

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

getExternalIP извлекает строку и getExternalPort извлекает int. Оба извлекают правильные данные. Кроме того, когда я компилирую через eclipse, он не дает ошибки, но при компиляции через Ant он дает эту ошибку кастинга и показывает, что скомпилировать не удалось. –

Смежные вопросы