通常,当我们使用Predicate时,我们需要导入java.util.function.Predicate。但就我而言,如果我们在方法中使用谓词作为参数(removeIf(((,我们不需要导入谓词。为什么?
import java.util.ArrayList;
import java.util.List;
public class Test {
public static void main(String[] args)
{
List<String> list = new ArrayList<>();
list.add("ABCDEFG");
list.add("ABC");
list.removeIf(s -> s.length() > 4);
System.out.println(list); // ABC
}
}
谢谢。
如果我们在方法中使用谓词作为参数(removeIf(((,我们不会 需要导入谓词。为什么?
由于Predicate
是一个FunctionalInterface
,可以在不使用任何import
的情况下表示为 lambda。lambda 的类型由编译器推断。