为什么Integer.parseInt(String str)在Java中返回int而不是Integer?

Wow*_*Bow 0 java autoboxing serialization unboxing integer

我问这个问题,因为我有一种情况,我有以下两种方法:

public T get(Serializable id) and
public T get(int id) 
Run Code Online (Sandbox Code Playgroud)

我必须在大多数情况下使用第一种方法,而第二种方法已在我们的系统中弃用.

我的输入是String所以每次我需要调用时 get(Serializable id),我必须传递Integer而不是int,否则它将使用不推荐使用的第二种方法.即我打电话Integer.parseInt(str),然后我不得不专栏它整数(即(Integer)Integer.parseInt(str)),这似乎是多余的.

有没有更好的方法来实现这一点,为什么Integer.parseInt(str)return int而不是Integer的实现?

Psh*_*emo 8

为什么Integer.parseInt(str)的实现返回int而不是Integer?

因为Integer.parseInt被设计为返回int,这是它的返回类型.

有一个更好的方法吗...

如果你想获得Integer而不是int使用Integer.valueOf.