2012-04-19 35 views
0

我想使用Service番石榴接口作为SwingWorker,因为在SwingWorker中我总是需要一个开始结束状态。Guava:如何将其他状态添加到Service接口?

我应该写这样的事情:

class WorkerSomething extends 
javax.swing.SwingWorker<Void, com.google.common.util.concurrent.Service.State> 
implements com.google.common.util.concurrent.Service 

这样,我只能用番石榴服务状态进行中间结果。但是我需要一些其他中间状态来发布我的GUI。

我该怎么做?这个想法是个好主意吗?

谢谢。

+2

实施Guava Service有什么好处?如果除此之外,Guava Service.State没有足够的中间值来携带您需要的信息,那么请勿使用它,因为您无法扩展enum。 – 2012-04-19 07:19:44

+0

@Guillaume Polet是的,这可能是一个坏主意。 – Istao 2012-04-19 07:22:44

回答

5

我会明确地说,如果现有的Service.State值不适合您的需求,那么Service本身并不适合您的需求。

+0

如果我们只能使用Service.State,怎么可能使用番石榴服务? Perhpas可以使用ForwardingService添加应用程序状态? – Istao 2012-04-19 18:10:16