Java匿名内部类-创新互联

三种方式的演化

Thread构造方法如下

大英网站制作公司哪家好,找创新互联!从网页设计、网站建设、微信开发、APP开发、响应式网站设计等网站项目制作,到程序开发,运营维护。创新互联于2013年成立到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联。
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/


文章标题:Java匿名内部类-创新互联
网站链接:http://pwwzsj.com/article/deciio.html