将方法调用包装在新对象中有什么好处?

时间:2018-09-11 06:50:45

标签: java android inner-classes

我在某个公司内部项目中看到了这段代码片段,这确实让我感到困惑,而且没人知道谁和为什么写这样的代码。

private void setDomStorageEnabled(final boolean isEnalbe) {
    new Object() {
        public void setDomStorageEnabled() {
            mWebView.getSettings().setDomStorageEnabled(isEnalbe);
        }
    }.setDomStorageEnabled();
}

有人对此有想法吗?

1 个答案:

答案 0 :(得分:6)

此代码创建一个匿名内部类并将其实例化,以在该实例上调用方法。可以直接调用的方法。

这样做毫无意义,它不会增加任何价值。相反,它显然只会在读者之间造成混乱。

因此,简单的答案是:您应该把那东西扔掉并继续使用

private void setDomStorageEnabled(boolean isEnalbe) {
  mWebView.getSettings().setDomStorageEnabled(isEnalbe);
}

相反。 (我还删除了毫无意义的final,因为 在这里也没有添加任何值。除此之外,mWebView在坚持时可以称为webView Java命名约定对您很重要。)