我正在学习java,现在正在测试静态块是如何工作的。我正在尝试构建和运行下面的代码,但是静态块没有被执行。当我通过命令行编译和运行相同的代码时(我使用的是命令提示符(Windows 10)),静态块正在被执行。
我假设这与IDE中的某个选项有关,但正如我所说,我仍在学习Java和OOP。
package statictest;
public class StaticTest {
public static void main(String args[]) {
System.out.println(Test.i);
}
}
class Test {
static int i;
static {
i = 10;
}
}
有没有人能帮我一个忙?解释一下为什么会发生这种情况也很感激。
附言:
使用NetBeans时,输出为0
使用命令行时,输出为10
2条答案
按热度按时间gcmastyq1#
我也得到了这个问题后,从netbeans 12.0更新到12.4,导入我的旧插件修复了这个问题,我认为这是与nb-javac插件有关的东西。
6l7fqoea2#
您应该使用upgrade升级到NetBeans 12.5。
这是NetBeans 12.4中的一个已知问题,并且在NetBeans 12.5中已得到修复(我运行了一个测试来确认)。
NetBeans 12.5 Features页面的摘要:
NETBEANS-5832正在修复vanilla索引的静态初始值设定项的编译。:https://github.com/apache/netbeans/pull/3054
特定的NetBeans JIRA票证:Static block not compiled