2017-10-01 11 views
0

私はSetProperty<Point>Stream<Point>を生成する関数を持っています。JavafxはObservableからセットを生成するコールバックにSetPropertyをバインドします

Stream<Point> generatePoints(Point p) { 
    // ... 
} 
ObjectProperty<Point> selectedPointProperty() { 
    // ... 
} 

SetProperty<Point> generatedPoints = new SimpleSetProperty(); 

私はselectedPointProperty()の結果にgeneratedPointsを適用した結果にgeneratedPointsをバインドしたいと思います。私は次のコードを試しましたが、タイプエラーがあります。

generatedPoints.bind(Bindings.createObjectBinding(() -> generatePoints(selectedPointProperty().get()).collect(Collectors.toSet()), 
selectedPointProperty())); 

答えて

1

SetProperty<T>Property<Set<T>>しかしProperty<ObservableSet<T>>ではありません。

したがってプロパティのために必要なタイプと

generatePoints(selectedPointProperty().get()).collect(Collectors.toSet()) 

によって返される型が一致しません。

generatedPoints.bind(Bindings.createObjectBinding(() -> FXCollections.observableSet(generatePoints(selectedPointProperty().get()).toArray(Point[]::new)), 
     selectedPointProperty())); 
のように、 Callableから ObservableSetを返す必要があります。
関連する問題