关于我们

质量为本、客户为根、勇于拼搏、务实创新

< 返回

Java匿名内部类

发布时间:2022-07-27 13:54:14

三种方式的演化

Thread构造方法如下

public Thread(Runnable target) {
        init(null, target, "Thread-" + nextThreadNum(), 0);
}

Runnable 是一个接口

@FunctionalInterface
public interface Runnable {
    public abstract void run();
}

调用对比:

public class App {
   public static void main(String[] args) {

      //default
      new Thread(new Task()).start();

      //匿名内部类
      new Thread(new Runnable() {
         @Override
         public void run() {
            System.out.println("002");
         }
      }).start();

      //Lambda表达式
      new Thread(() -> {
         System.out.println("003");
      }).start();
   }
}

class Task implements Runnable {
   @Override
   public void run() {
      System.out.println("001");
   }
}

匿名内部类 vs Lambda表达式


所以,不是所有使用匿名内部类的地方都可以使用Lambda表达式代替。
ref: https://www.geeksforgeeks.org/difference-between-anonymous-inner-class-and-lambda-expression/


/template/Home/DawnNew/PC/Static

立即注册风纳云账号,免费体验多款产品

立即注册