我目前正在通过并发API JavaFX 提供我的业务逻辑。但是我偶然发现了一个对我来说并不干净的部分。
基本上,如果您创建一个看起来像这样的服务
public class FooCommand extends Service<Foo> {
@Override protected Task<Foo> createTask() {
return new Foo();
}
}
我设置onSucceeded
FooCommand fooCommand = CommandProvider.get(FooCommand.class);
fooCommand.setOnSucceeded(new FooSucceededHandler());
fooCommand.start();
到这个类的一个实例
public class FooSucceededHandler implements EventHandler<WorkerStateEvent> {
@Override public void handle(WorkerStateEvent event) {
Foo f = (Foo) event.getSource().getValue();
}
}
但正如您所看到的,我需要将值转换为Worker
to (Foo)
。有更清洁的方法吗?