私の 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 はスレッドセーフであるため、これは許可されていると思いますが、使用する必要があるより良いコンテナー、または完全に簡単な方法はありますか?