作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
为什么这个java程序不能编译:
public class xx {
public static final Object obj;
static {
// obj = null; // this compiles
xx.obj = null; // this doesn't
}
}
出现此错误:
$ javac xx.java
xx.java:5: cannot assign a value to final variable obj
xx.obj = null; // this doesn't
^
1 error
$ javac -version
javac 1.6.0_33
如果我将 xx.obj = null
替换为 obj = null
(如评论中提到的),它会编译。
我认为 xx.
类名前缀或多或少只是语法...这是编译器或语言规范中的错误吗? :)
最佳答案
当您执行xx.obj
时,这意味着该类已经初始化。所以final obj
不能再初始化了。这是一个编译时错误。编译器可能已经检查过 obj
尚未初始化。很难检查这一点,但理论上是可能的。但这不是 Java 编译器的工作方式。
关于java编译报错取决于静态变量名是否合格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11705814/
我是 DDD 的新手,正在考虑在我的项目中使用这种设计技术。 然而,让我对 DDD 印象深刻的是这个想法是多么的基本。与 MVC 和 TDD 等其他设计技术不同,它似乎不包含任何突破性的想法。 例如,
我正在尝试理解 elementFormDefault="qualified/unqualified" 的含义在嵌入 WSDL(SOAP 1.1、WSDL 1)的 XML 模式中。 例如,我在 WSDL
我有一段代码,它使用 iostreams 的 xalloc 和 pword 将各种类型的标志存储为指针。由于 pword 公开了一个 void*&,我有一个简单的包装器来通过旧的 C 转换公开存储的类
我是一名优秀的程序员,十分优秀!