Java boolean 数组,只有一个元素

标签 java arrays swt eclipse-rcp final

所以我在浏览 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();

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

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

最佳答案

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

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

<小时/>

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

关于Java boolean 数组,只有一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19429209/

相关文章:

python - 在 Python 中更改数组索引

java - ViewerComparator 构造函数上的 AssertionFailedException

C++ 查找数组中出现次数最多的元素

java - RMI 注册表过滤器拒绝 java 8 update 121 中的 Rmi 配置类

java - spring retry setRetryableExceptions, setFatalExceptions 不可用

java - 如何遍历方解石中的sqlNode

java - 在java中分配不同的值后,每一行在二维数组中获得相同的值

java - 如何在java中检测windows字体大小(100%、125%、150%)

java - 在初始化静态变量之前执行一些事情

java - C3P0 连接提供程序创建新连接还是重用连接?