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

What is the benefit of wrapping a method call in a new object?

我在某个公司内部项目中看到了这段代码片段,这让我很困惑,没人知道是谁&&为什么这样写的。

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

有人对此有想法吗?

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

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

因此简单的答案是:你应该把那个东西扔掉然后去

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

相反。 (我还删除了无意义的 final,因为 also 不会在此处添加任何值。除此之外,mWebView 可以称为 webView,坚持 java 命名约定对您很重要。)