有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在ObservableList提取器中处理NULL

我有一个带有提取器的ObservableList,这样当列表中的项的属性发生更改时,连接到对象的侦听器就会触发:

ObservableList<User> users = FXCollections.observableArrayList(param -> new Observable[] {param.getDepartment().departmentNameProperty()});

但是,如果用户没有部门(即param.getDepartment()null),则会抛出一个NPE。这是有道理的,因为你不能从null中获得departmentNameProperty(a SimpleStringProperty

ObservableList更改为:

ObservableList<User> users = FXCollections.observableArrrayList(param -> {
    if (param.departmentProperty() == null) {
        return new Observable[0];
    } else {
        return new Observable[]{param.getDepartment().departmentNameProperty();
    }

修正了NPE,但是对于列表中所有位置的更改,observable似乎不能正确触发

有什么好办法解决这个问题吗?我目前正在解决这个问题,不允许使用空部门(构造函数现在只创建一个名为“”的部门),但这似乎是一个草率的解决方案


共 (0) 个答案