为什么不用导入就可以使用Predicate参数?

通常我们在使用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

    }

}

谢谢。


守着星空守着你
浏览 95回答 1
1回答

饮歌长啸

如果我们在方法中使用 Predicate 作为参数(removeIf()),则不需要导入 Predicate。这是为什么?因为PredicateaFunctionalInterface可以表示为 lambda 而无需使用任何imports。lambda 的类型由编译器推断。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java