为了账号安全,请及时绑定邮箱和手机立即绑定

Java中未初始化的变量和成员

Java中未初始化的变量和成员

开满天机 2019-08-13 15:11:03
Java中未初始化的变量和成员考虑一下:public class TestClass {     private String a;     private String b;     public TestClass()     {     a = "initialized";     }     public void doSomething()     {     String c;         a.notify(); // This is fine     b.notify(); // This is fine - but will end in an exception     c.notify(); // "Local variable c may not have been initialised"     }}我不明白。“b”永远不会被初始化,但会产生与“c”相同的运行时错误,这是一个编译时错误。为什么局部变量和成员之间存在差异?编辑:让会员私密是我最初的意图,问题仍然存在......
查看完整描述

3 回答

?
慕哥9229398

TA贡献1877条经验 获得超6个赞

明确分配的规则非常困难(阅读JLS第3版第16章)。在字段上强制执行明确的赋值是不切实际的。就目前而言,甚至可以在初始化之前观察最终字段。


查看完整回答
反对 回复 2019-08-13
  • 3 回答
  • 0 关注
  • 725 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信