在我的SWT Java应用程序中,我经常想从Display.syncExec()调用中返回信息。 到目前为止,我发现这样做的最好方法是:
final ArrayList<Integer> result = new ArrayList<Integer>();
GUI.display().syncExec(new Runnable(){ public void run() {
MessageBox mb = /* ... */;
/* set up messagebox */
result.add(mb.open());
}});
if (SWT.OK == result.get(0)) { /* ... */ }
我认为这是允许的,因为ArrayList是线程安全的,但是我应该使用更好的容器,还是更简单的方法?