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();

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

要素が 1 つだけの配列を作成する目的は何ですか? 速いですか?私は間違いなくここに何かが欠けています。

4

1 に答える 1

3

このアプローチを使用する利点は、配列を変更できないことです (配列は であるためfinal)。ただし、配列の内容は変更できます。

static有用な例は、これらの配列を使用して、( ) フィールドを作成することなく、匿名内部クラスの最初のエントリを変更できることです。


上記のコメントで述べたように、別の使用例として、この配列を使用して、配列型を期待するメソッドに渡すことができます。

于 2013-10-17T14:28:32.327 に答える