**结束。**此问题不符合堆栈溢出准则。它目前不接受答案。
**想改进这个问题吗?**更新问题,使其成为堆栈溢出的主题。
上个月关门了。
改进这个问题
我必须解释我的主题,因为我不知道如何在谷歌上搜索这个。。。我只需要一个提示。
我正在做一个关于引用方法和lamdba的java教程。”如何筛选人员列表中的人员”。我不担心我如何做到这一点,但我可以在哪里找到和解释这个构造“filtername.or”和这个接口中的其他“default public filter or(filter filtro){”
“filtername.or”,这是一个接口
“default public filter or(filter filtro){”我认为这是一个没有名称的方法,因为它就像一个函数接口,不需要为方法命名,但是¿如何使用或。。。?
我发现这个结构:
public class MainDF {
public static void main(String[] args) {
test();
}
public static void test() {
Filter filterName = new FiltroName();
Filter filterAge = new FilterAge();
// I've never seen this, an interface with and or
Filter otherFilterName = filterName.or( filterAge );
Persona persona = new Persona("Michael", 18);
filterName.testear(persona);
otherFilterName.testear(persona);
}
}
使用的接口是:
import data.Persona;
public interface Filter {
public boolean testear( Persona persona );
// I can't understand how this works, Filter is the type return but
// how it works the combination of Filter or (Filter filter)
default public Filter or (Filter filtro) {
System.out.println("entrando en default...");
return (Persona p)->{
return testear(p) || filtro.testear(p);
};
}
}
提前谢谢!
1条答案
按热度按时间llew8vvj1#
不寻常的代码,但是
or
这里不是关键字或连词。它是一个方法名。也可以叫它test_with_or
. 代码:通常写为(没有令人困惑的空格):
意思是
or
是一种方法,需要Filter
,并返回Filter
. 想象一下它是这样写的: