gpt4 book ai didi

java - 使用循环内初始化的对象/变量?

转载 作者:行者123 更新时间:2023-12-01 18:41:34 26 4
gpt4 key购买 nike

我在 if 语句之外声明我的对象,但在其中初始化它们。后来我尝试使用它们,但它不允许这样做,因为它们尚未初始化。 if 语句的结构使得它们都将在使用对象之前执行,因此对象将被保证初始化,但 java 不允许这样做。有办法解决这个问题吗?

最佳答案

如果您知道所有路径最终都会初始化它们,但编译器不会,您可以将它们初始化为 null0false (正如 ajb 提醒的那样)——或者你在声明它们时定义的其他特殊初始值。然后它们就有一个具体的初始值。

如果在您使用变量时该变量仍然为 null (或者无论它的初始值是什么)(在对象的情况下可能由 NPE 证明),那么您就知道出了问题;您还可以稍后使用断言自行记录您的假设。

您应该发布您的代码,以便我们为您提供更好的建议;编译器在路径分析方面相对智能,尽管它当然不能处理依赖外部输入或假定前提条件和不变量的情况。不过,您总是有可能忽略了某些内容(也许异常或意外情况会导致该值未初始化的路径 - 这很好,您只需确保它已初始化)。

关于java - 使用循环内初始化的对象/变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19780753/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com