1

所以我在挖掘时遇到了这段代码org.eclipse.ui.internal.Workbench

        final boolean[] initOK = new boolean[1];

        if (getSplash() != null) {

            final boolean[] initDone = new boolean[] { false };
            final Throwable[] error = new Throwable[1];
            Thread initThread = new Thread() {
                /*
                 * (non-Javadoc)
                 * 
                 * @see java.lang.Thread#run()
                 */
                public void run() {
                    try {
                        // declare us to be a startup thread so that our
                        // syncs will be executed
                        UISynchronizer.startupThread.set(Boolean.TRUE);
                        initOK[0] = Workbench.this.init();
                    } catch (Throwable e) {
                        error[0] = e;
                    } finally {
                        initDone[0] = true;
                        display.wake();
                    }
                }
            };
            initThread.start();

          ..............
       }

只用一个元素创建数组的目的是什么?它更快吗?我肯定在这里遗漏了一些东西。

4

1 回答 1

3

使用这种方法的优点是不能修改数组(因为它们是final),但是可以更改它们的内容。

一个有用的示例是,您可以使用这些数组并修改它们在匿名内部类中的第一个条目,而无需将它们设为 ( static) 字段。


如上面评论中所述,另一个用例是该数组可用于将其传递给期望数组类型的方法。

于 2013-10-17T14:28:32.327 回答