首页 > 技术文章 > N种内部类及Lambda表达式

edgarstudy 2021-04-13 01:09 原文

N种内部类及Lambda表达式

内部类简介

  • 静态内部类:被static修饰的类
  • 局部内部类:在方法内部的类
  • 匿名内部类:没有类名的类

注意:内部类都是在一个类的内部

Lambda简介

Lambda 表达式是 JDK8 的一个新特性,可以取代大部分的匿名内部类,写出更优雅的 Java 代码,尤其在集合的遍历和其他集合操作中,可以极大地优化代码结构。

函数式接口:只有一个抽象方法的接口

注意:Lambda表达式只有在函数式接口时才能使用。

示例代码

package com.edgar.lesson02;

public class TestLambda {
    //3.静态内部类--被static修饰
    static class Like2 implements Ilike{
        @Override
        public void lambda() {
            System.out.println("I like lambda2!!");
        }
    }
    public static void main(String[] args) {
        Ilike like= new Like();
        like.lambda();

        like=new Like2();
        like.lambda();
        //4.局部内部类--在方法中的类
        class Like3 implements Ilike{
            @Override
            public void lambda() {
                System.out.println("I like lambda3!!");
            }
        }
        like=new Like3();
        like.lambda();

        //5.匿名内部类--没有类名的类
        like=new Ilike() {
            @Override
            public void lambda() {
                System.out.println("I like lambda4!!");
            }
        };
        like.lambda();

        //6.lambda表达式
        like=()->{
                System.out.println("I like lambda5!!");
        };
        like.lambda();

    }
}

//1.定义一个函数式接口--接口只有一个抽象方法
interface Ilike{
    void lambda();
}

//2.实现类
class Like implements Ilike{

    @Override
    public void lambda() {
        System.out.println("I like lambda!!");
    }
}

推荐阅读