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

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


有人对此有想法吗?

最佳答案

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

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

因此,简单的答案是:您应该把那东西扔出去

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


代替。 (我还删除了无意义的final,因为在这里也没有添加任何值。除此之外,当坚持使用Java命名约定时,mWebView可以称为webView。)

关于java - 将方法调用包装在新对象中有什么好处?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52270224/

10-10 19:28