なぜ我々はそれをインポートすることなく、述語のパラメータを使用できますか?

トラン・アンミン:

通常、我々は述語を使用する場合、我々は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任意の使用なしラムダとして表すことができるimportS。ラムダのタイプは、コンパイラによって推測されます。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=336473&siteId=1