下面这个代码有问题 不能编译成功 logger 初始化和 static 块之间为何不能这样顺序?
class Account{
private static final Logger AccountLogger = Logger.getLogger("AccountLogger");
static {
...
AccountLogger.info("..");
}
...
}
1
elgae 2017-08-25 22:05:13 +08:00
你可以分别编译 AccountLogger、Logger (如果编译过程中需要其他的类,先编译那些类),再来编译 Account。
原因是你没对 Account 产生调用,不会自动加载 Account 及其依赖的类,没有加载,虚拟机自然就找不到。 题外话,看了你的话题列表,对你的学习能力深表同情。 |
2
doing 2017-08-25 22:47:03 +08:00
我觉得不应该出错啊,静态属性和静态代码块,就是按照写的先后顺序初始化的呀。。。
|
3
dltsgl 2017-08-25 22:47:12 +08:00
顺序没有问题啊,你确定是顺序的问题?
|
4
cxshun 2017-08-27 20:38:30 +08:00
你确定是顺序的问题?我直接拷你代码是没问题的。
静态初始化是按照顺序来执行的,你的顺序没有任何问题,至于 1 楼的解释,抱歉,我也看不懂。而后面说你的学习能力的,这个我就不作评价了。 PS:一个社区并不会一直有人无偿回答你总是,要尝试自己去解决问题。很多东西多搜搜就有了,不要用 baidu,不要用 baidu,不要用 baidu,重要的事情说 3 遍。 |