首页 > 文章列表 > Java 匿名内部类如何创建?

Java 匿名内部类如何创建?

匿名内部类 关键字:Java
339 2024-05-02

匿名内部类是在创建实例时定义的内部类,无需显式名称。语法:new <基类或接口名>() { // 匿名内部类体}。优点:简洁、代码重用、局部作用域。缺点:可读性差、调试难度大。实战案例包括覆盖匿名类和实现匿名接口。

Java 匿名内部类如何创建?

Java 匿名内部类创建指南

什么是匿名内部类?

匿名内部类是一种在创建实例的同时定义的内部类。它们没有显式名称,并且通常用于在短的时间内覆盖或实现类或接口。

创建匿名内部类

要在 Java 中创建匿名内部类,请使用以下语法:

new <基类或接口名>() {
    // 匿名内部类体
};

基类或接口名是匿名内部类将从中继承或实现的类或接口。类体包含匿名内部类的方法和字段的定义。

实战案例

1. 覆盖匿名类

使用匿名内部类覆盖 Runnable 类的 run() 方法:

Thread thread = new Thread(new Runnable() {
    @Override
    public void run() {
        System.out.println("匿名内部类线程运行");
    }
});

thread.start();

2. 实现匿名接口

使用匿名内部类实现 Comparator 接口:

List<String> strings = new ArrayList<>();

Comparator<String> comparator = new Comparator<>() {
    @Override
    public int compare(String s1, String s2) {
        return s1.length() - s2.length();
    }
};

strings.sort(comparator);

优点

  • 简洁性:匿名内部类可以直接创建,无需定义单独的类文件。
  • 代码重用:它们可用于创建仅使用一次的临时实现。
  • 局部作用域:匿名内部类只能在创建它们的类或方法的作用域内访问。

缺点

  • 可读性:匿名内部类可能会使代码难以阅读和理解。
  • 调试难度:由于匿名内部类没有名称,因此在调试时可能更难跟踪。