将 Java Integer 更改为 int 有任何问题吗?[复制]

Are there any issues with changing Java Integer to int? [duplicate]

提问人:etcetera 提问时间:11/17/2023 更新时间:11/17/2023 访问量:38

问:

我最近继承了一堆使用 Java Integer 的代码,为此我收到了很多编译器警告。我想将它们转换为 int 以消除警告(而不是抑制它们)。我的问题是......简单地将 Integer 声明更改为 int 有什么问题吗?当然,我会测试代码更改,但想知道我是否会遇到任何问题。我使用的是 Java 版本 17。

Java 整数

评论

1赞 Scott Hunter 11/17/2023
请注意,这是一种对象类型,而不是,因此,如果任何代码依赖于其中一项对象,则可能会导致问题。Integerint
0赞 user85421 11/17/2023
恕我直言,最大的问题是可以,永远不会;此外,大多数标准集合不接受 ,因此通常会将其转换为保存在此类集合中 (, , ...((而且,显然?,没有方法))IntegernullintintIntegerListMapint
0赞 ControlAltDel 11/17/2023
另一个问题是序列化。 是程序语言中立的,而 Integer 仅是 Java。对象在内存中也比基元大得多int
0赞 ControlAltDel 11/17/2023
另一个问题(在内存管理领域)是,未封装为对象一部分的基元仅存在于堆栈中,而对象则全部位于堆中。
0赞 Basil Bourque 11/17/2023
可以通过发布编译器警告的实际文本来改进您的问题。
0赞 juwil 11/17/2023
如果你有收藏品,那将是一个问题。

答:

1赞 Alfred Benigno 11/17/2023 #1

非常是的。整数可以为 null,这可能导致 null 指针异常。因此,在转换为 int 之前请检查