java - 如何获取已创建的 MatchAllFilters 和其他过滤器的名称?需要对界面进行哪些更改?
问题描述
我需要对“所有过滤器类”进行哪些更改?对于 MatchAllFilter 类,getName 方法应返回其 ArrayList 中所有过滤器名称的字符串,我不知道该怎么做。我还想知道如何在深度过滤器中使用 getName 方法?
public interface Filter {
public String getName();
public boolean satisfies(QuakeEntry qe);
}
public class DepthFilter implements Filter {
private double depthMin;
private double depthMax;
private String fName;
public DepthFilter(double min, double max, String name) {
depthMin = min;
depthMax = max;
fName = name;
}
public boolean satisfies(QuakeEntry qe) {
if (qe.getDepth() >= depthMin && qe.getDepth() <= depthMax) {
return true;
}
return false;
}
}
public class MatchAllFilter implements Filter {
private ArrayList<Filter> filters;
private String fName;
public MatchAllFilter() {
filters = new ArrayList<Filter>();
}
public void addFilter(Filter f){
filters.add(f);
public boolean satisfies(QuakeEntry qe) {
for (Filter f : filters) {
if (!f.satisfies(qe)) { // any of the filters criteria failed, then exit
return false;
}
}
return true;
}
}
解决方案
您的每个过滤器都implements Filter
对吗?
该接口Filter
有一个getName()
您必须在每个类上实现的接口。
也许每个过滤器都需要在其构造函数中提供一种方法来传递String name
权限?
然后应该很容易通过使用获取任何过滤器的名称getName()
例子:
DepthFilter depthFilter = new DepthFilter(1.5, 5.5, "myOwnFilter");
String name = depthFilter.getName();
推荐阅读
- apache-camel - 骆驼路线中的布尔条件
- html - Flexbox 行/列等高
- mysql - 我们如何在单个定义器中为 MYSQL 数据库对象(如过程)添加多个用户?
- python - 模块不存在
- matplotlib - 使用 matplotlib 绘制 scikit learn 线性回归结果
- linux - How to use wget to download files that begins with a known expression and have a certain date after some unknown words?
- css - 无法将粘性物品放置在垫子标签内
- java - Spring数据查询dsl如何添加订单?
- sql - 如何从包含引用同一列的两个外键的 SQLite 表中获取信息
- recursion - 递归多态类型结构的更好表示