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

匿名内部类的生命周期由其作用域决定:方法局部内部类:仅在创建它的方法范围内有效。构造器内部类:与外部类实例绑定,当外部类实例释放时释放。静态内部类:与外部类同时加载卸载。

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 匿名内部类的生命周期是怎样的?的详细内容,更多请关注www.sxiaw.com其它相关文章!