在我的JavaFX和Jooq项目中像往常一样编码,我注意到了这个有趣的行为:
private JooqRecord foo;
@FXML
private Label bar;
public void loadFoo(JooqRecord r) {
this.foo = r;
this.bar.setText(r.getBar()); // This is null
}
此代码将抛出NullPointerException,但如果我这样做:
private JooqRecord foo;
@FXML
private Label bar;
public void loadFoo(JooqRecord r) {
this.foo = r;
this.bar.setText(foo.getBar()); // Works as intended
}
它完全符合预期。
如果我在分配给全局变量后将r
打印到控制台,它将打印记录就好了。
为什么会这样?