我正在使用IntelliJ IDEA调试程序并看到一个非常奇怪的行为。我将通过下面的init()方法逐行进行。在变量视图中,首先它表示A_DIR = null
和A_DATASET = null
。一旦我通过设置A_DIR的行,它会在视图中突出显示A_DIR = 'my/dir'
。到目前为止一切都如预期。
但是一旦我通过设置A_DATASET的第二行(这样调试器现在就在String abc = "xyz"
线上),A_DATASET = myfile.csv
会按预期突出显示,但是A_DIR
的线已经消失了!它不再在调试视图中显示A_DIR
变量的值!
现在没有理由将变量取消设置,但IntelliJ因某种原因决定隐藏变量。
变量是A_DIR
在源代码视图中显示为灰色,因为它从未使用过。这可能是隐藏它的原因吗?
public class MyClass {
private static String A_DIR;
private static String A_DATASET;
public MyClass() {
init();
}
private void init() {
try {
propertyFinder = MyOtherClass.getPropertyFinder();
A_DIR = propertyFinder.getTheDirectory();
A_DATASET = propertyFinder.getTheDataSet();
String abc = "xyz";
}
catch (IOException ieo) {
log.error(ieo.getMessage(), ieo);
}
}
}
“变量”视图显示IntelliJ IDEA认为与当前上下文最相关的变量子集。如果变量从视图中消失,则并不意味着它已经变得未设置,或者其他任何与代码逻辑有关的变量;它只是IntelliJ试图对上下文敏感。
如果您想要查看变量的值,可以按“New Watch”按钮并输入变量名称;然后它将始终可见。