2015-09-09 10 views
0

Я задаю этот вопрос, потому что у меня есть к ситуации, когда у меня есть следующие два метода:Почему Integer.parseInt (String str) возвращает int вместо Integer в Java?

public T get(Serializable id) and 
public T get(int id) 

я должен использовать первый метод, в большинстве случаев, а второй метод уже устарел в нашей системе.

Мои входы String, поэтому каждый раз, когда мне нужно позвонить get(Serializable id), мне нужно передать Integer вместо int, иначе он будет использовать второй метод, который устарел. iee мне нужно позвонить Integer.parseInt(str), а затем я должен указать . В поле это целое число (т.е. (Integer)Integer.parseInt(str)), которое кажется излишним.

Есть ли лучший способ сделать это и почему реализация Integer.parseInt(str) возвращает int вместо Integer?

+1

Небольшая точка - вы не «* unbox to Integer *» - вы вводите поле «Integer», а unbox to 'int'; обертки являются примитивами в коробке, так как они * поле * примитив в 'Object' –

+0

@ AndyBrown Спасибо. Я обновил свой вопрос. – WowBow

+0

Потому что все, кроме тебя, предпочитают так. – EJP

ответ

7

Почему реализация Integer.parseInt (str) возвращает int вместо Integer?

Поскольку Integer.parseInt был разработан, чтобы вернуть int и это его тип возврата.

Есть ли лучший способ сделать это ...

Если вы хотите получить Integer вместо int использовать Integer.valueOf.