Java 在新对象中包装方法调用的好处是什么?
我在某个公司内部项目中看到了这个代码片段,这让我很困惑,没有人知道是谁&为什么这样写的Java 在新对象中包装方法调用的好处是什么?,java,android,inner-classes,Java,Android,Inner Classes,我在某个公司内部项目中看到了这个代码片段,这让我很困惑,没有人知道是谁&为什么这样写的 private void setDomStorageEnabled(final boolean isEnalbe) { new Object() { public void setDomStorageEnabled() { mWebView.getSettings().setDomStorageEnabled(isEnalbe); } }
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
,因为这也没有在这里添加任何值。除此之外,mWebView
可以被称为webView
,当坚持java命名约定对您很重要时。)此代码创建一个匿名内部类并实例化它,以便在该实例上调用一个方法。也可以直接调用的方法
这样做没有意义,它不会增加任何价值。相反,它显然只会在读者中制造混乱
因此,简单的答案是:你应该扔掉那件东西,然后继续
private void setDomStorageEnabled(boolean isEnalbe) {
mWebView.getSettings().setDomStorageEnabled(isEnalbe);
}
相反。(我还删除了毫无意义的final
,因为这也没有增加任何价值。除此之外,mWebView
可以被称为webView
,因为坚持java命名约定对你来说很重要。)只是“写得不好的代码”就是“写得不好的代码”