84669 人が学習中
152542 人が学習中
20005 人が学習中
5487 人が学習中
7821 人が学習中
359900 人が学習中
3350 人が学習中
180660 人が学習中
48569 人が学習中
18603 人が学習中
40936 人が学習中
1549 人が学習中
1183 人が学習中
32909 人が学習中
public static final Function<String, Set<String>> MAPPING_FUNCTION = new Function<String, Set<String>>() { @Override public Set<String> apply(String s) { return new HashSet<>(); } };
MAPPING_FUNCTION已经是接口Function<String, Set<String>>的一个实例了啊?
认证高级PHP讲师
これはインターフェースのインスタンスではなく、インターフェースを実装する匿名内部クラスのインスタンスです。 その後の中括弧に気づきませんでしたか?私たちが普段使っているA a=new A()の形式とは明らかに違います。 内部クラスに関する関連知識を読むことをお勧めします。
A a=new A()
これは、匿名の内部クラスを作成する方法です。実際、この作成方法は、新しいクラスを作成してインターフェイスを実装することと同じです。 問題は、インターフェイスのメソッドを実装するためだけに新しいクラスを作成するのは面倒すぎるため、ほとんどのメソッド作成では匿名の内部クラスを直接作成することになります。
クラスの名前には注意を払わないので、その特定の実装のみに注意を払います。これは、匿名内部クラスの一般的な使用シナリオでもあります。
「Crazy Java 講義ノート」の第 6 章に詳しい説明があります。本を読みたくない場合は、「匿名内部クラス」で検索してください。
匿名内部クラスは、このインターフェースを実装するクラスと同等です。宣言と実装を一緒に書くだけです。
これはインターフェースのインスタンスではなく、インターフェースを実装する匿名内部クラスのインスタンスです。
その後の中括弧に気づきませんでしたか?私たちが普段使っている
A a=new A()
の形式とは明らかに違います。内部クラスに関する関連知識を読むことをお勧めします。
これは、匿名の内部クラスを作成する方法です。実際、この作成方法は、新しいクラスを作成してインターフェイスを実装することと同じです。
問題は、インターフェイスのメソッドを実装するためだけに新しいクラスを作成するのは面倒すぎるため、ほとんどのメソッド作成では匿名の内部クラスを直接作成することになります。
クラスの名前には注意を払わないので、その特定の実装のみに注意を払います。これは、匿名内部クラスの一般的な使用シナリオでもあります。
「Crazy Java 講義ノート」の第 6 章に詳しい説明があります。本を読みたくない場合は、「匿名内部クラス」で検索してください。
匿名内部クラスは、このインターフェースを実装するクラスと同等です。宣言と実装を一緒に書くだけです。