【发布时间】:2020-09-08 23:30:02
【问题描述】:
我最近遇到了以下代码:
public interface Filter {
Filter NULL_FILTER = new Filter() {
@Override
public Query getFilterCriteria() {
return null;
}
...
@Override
public void setArrayClause(ArrayClause arrayClause) {}
};
/** @return Filter criteria or null if not set */
Query getFilterCriteria();
...
default Filter withProjection(Set<Field> projection) {
this.setFields(projection);
return this;
}
}
我很困惑这样做的目的是什么。 谁能解释一下为什么有人会写这段代码?
【问题讨论】:
-
如果我告诉你
NULL_FILTER是公共静态字段有帮助吗? -
没有。实例化(new Filter())一个接口是什么意思?
-
接口没有被实例化。这将创建一个实现接口的匿名类,然后实例化该类。见stackoverflow.com/questions/9157784/…