为什么不用导入就可以使用Predicate参数?
Why we can use Predicate parameter without importing it?
通常我们在使用Predicate的时候,需要引入java.util.function.Predicate。但在我的例子中,如果我们使用 Predicate 作为方法中的参数 (removeIf()),我们不需要导入 Predicate。这是为什么?
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
}
}
谢谢。
if we use Predicate as a parameter in a method (removeIf()), we don't
need to import Predicate. Why is that?
因为 Predicate
是一个 FunctionalInterface
,可以表示为 lambda 而无需使用任何 import
。 lambda 的类型由编译器推断。
通常我们在使用Predicate的时候,需要引入java.util.function.Predicate。但在我的例子中,如果我们使用 Predicate 作为方法中的参数 (removeIf()),我们不需要导入 Predicate。这是为什么?
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
}
}
谢谢。
if we use Predicate as a parameter in a method (removeIf()), we don't need to import Predicate. Why is that?
因为 Predicate
是一个 FunctionalInterface
,可以表示为 lambda 而无需使用任何 import
。 lambda 的类型由编译器推断。