java 构造函数NULL(int)、Double(double)、Long(long)等已弃用

kgsdhlau  于 2023-11-15  发布在  Java
关注(0)|答案(1)|浏览(220)

在工作的时候,我得到了警告

The constructor Integer(int) is deprecated

字符串
我在网上找不到替代的构造函数/解决方案。我该如何解决这个问题?

更新

对于其他基本 Package 器类型的构造函数,我也会得到类似的警告;例如。

The constructor Boolean(boolean) is deprecated
The constructor Byte(byte) is deprecated
The constructor Short(short) is deprecated
The constructor Character(char) is deprecated
The constructor Long(long) is deprecated
The constructor Float(float) is deprecated
The constructor Double(double) is deprecated


这些类的解决方案是否与Integer相同?

vktxenjb

vktxenjb1#

您可以使用

Integer integer = Integer.valueOf(i);

字符串
从构造函数的javadoc:
已弃用。很少适合使用此构造函数。静态工厂valueOf(int)通常是更好的选择,因为它可能会产生更好的空间和时间性能。构造一个新分配的表示指定int值的对象。
主要区别在于,您不会总是获得一个带有valueOf的新示例,因为小的Integer示例会被缓存。
所有基本的 Package 器类型(BooleanByteCharShortIntegerLongFloatDouble)都采用了相同的模式。一般来说,替换:

new <WrapperType>(<primitiveType>)


<WrapperType>.valueOf(<primitiveType>)


(Note上面提到的缓存行为因类型和Java平台而异,但尽管存在这些差异,Java 9+的弃用仍然适用。

相关问题