将方法调用包装在新对象中有什么好处?
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 命名约定对您很重要。)
我在某个公司内部项目中看到了这段代码片段,这让我很困惑,没人知道是谁&&为什么这样写的。
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 命名约定对您很重要。)