ホームページ  >  記事  >  Java  >  Java 匿名内部クラスのライフサイクルは何ですか?

Java 匿名内部クラスのライフサイクルは何ですか?

王林
王林オリジナル
2024-05-01 16:06:01944ブラウズ

匿名内部クラスのライフサイクルは、そのスコープによって決まります: メソッドローカル内部クラス: それを作成したメソッドのスコープ内でのみ有効です。コンストラクターの内部クラス: 外部クラスのインスタンスにバインドされ、外部クラスのインスタンスが解放されると解放されます。静的内部クラス: 外部クラスと同時にロードおよびアンロードされます。

Java 匿名内部类的生命周期是怎样的?

Java 匿名内部クラスのライフ サイクル

匿名内部クラスの作成後、そのライフ サイクルは主に次の影響を受けます。効果:

  • メソッドのローカル内部クラス: それを作成したメソッドのスコープ内でのみ有効です。メソッドが終了すると、内部クラスとそのすべてのメンバーが解放されます。
  • コンストラクターの内部クラス: 外部クラスのインスタンスを作成すると、コンストラクターの内部クラスが有効になります。外部クラスのインスタンスが解放されると、内部クラスも解放されます。
  • 静的内部クラス: 静的内部クラスと外部クラスは同時にロードされます。外部クラスがアンロードされると、静的内部クラスもアンロードされます。

実践的なケース:

匿名の内部クラス実装を作成する Comparable インターフェイス:

List<Integer> numbers = new ArrayList<>();

// 创建匿名内部类比较器
Comparator<Integer> comparator = new Comparator<Integer>() {
    @Override
    public int compare(Integer a, Integer b) {
        return a - b;
    }
};

// 根据比较器排序列表
Collections.sort(numbers, comparator);

この例では、匿名内部クラス comparator は、numbers のリストをソートするために使用されます。 comparator はローカル内部クラスであるため、それを作成したメソッドのスコープ内でのみ使用できます。 sort メソッドが完了すると、comparator も解放されます。

以上がJava 匿名内部クラスのライフサイクルは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。