为什么在 Java 中不初始化局部变量?

新手上路,请多包涵

Java 的设计者是否有任何理由认为不应该为局部变量赋予默认值?说真的,如果可以给实例变量一个默认值,那为什么我们不能为局部变量做同样的事情呢?

它还会导致问题,如 博文评论中所述

当试图在 finally 块中关闭资源时,这条规则最令人沮丧。如果我在 try 中实例化资源,但尝试在 finally 中关闭它,我会收到此错误。如果我将实例化移到 try 之外,我会收到另一个错误,指出它必须在 try 中。

非常令人沮丧。

原文由 Shivasubramanian A 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 377
1 个回答

声明局部变量主要是为了进行一些计算。所以设置变量的值是程序员的决定,它不应该采用默认值。

如果程序员错误地没有初始化局部变量并且它采用默认值,那么输出可能是一些意想不到的值。所以在局部变量的情况下,编译器会要求程序员在访问变量之前用一些值初始化它以避免使用未定义的值。

原文由 Warrior 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏