匿名内部类&lambda表达式

本文介绍了Java编程中的匿名内部类和Lambda表达式的使用。匿名内部类用于一次性实现抽象类或接口,常在创建线程或处理集合时使用。Lambda表达式则在JDK8后引入,简化了只有一个抽象方法的接口实现,使得代码更加简洁。通过示例展示了如何创建和使用这两种特性。
摘要由CSDN通过智能技术生成

匿名内部类&lambda表达式

1.匿名内部类

  • 可以用于抽象类或者接口中,和普通类定义使用并无区别 只是一个无名的实现类 一次性使用 没有名字 所以是匿名内部类
  • 匿名内部类中只需要重写抽象方法即可
  • 常用于线程,集合
  • 抽象类或接口定义

抽象类或接口定义

public abstract class Inter {
    public abstract void method1();

    public abstract void method2();
}

使用类

public class Demo {
    public void demo(Inter inter) {
        inter.method1();
        inter.method2();
    }
}

测试

   public static void main(String[] args) {
        Demo demo = new Demo();
       //匿名内部类
        demo.demo(new Inter() {
            @Override
            public void method1() {
                System.out.println("method1 invoked ");
            }
            @Override
            public void method2() {
                System.out.println("method1 invoked ");
            }
        });
    }

2 lambda表达式

  • 仅用于接口中只有一个抽象方法时,匿名内部类可以简化为lambda表达式
  • @FunctionalInterface 函数式接口 凡是接口上面有这种注解的都表示里面只有一个抽象方法 都可以使用lambda表达式
  • jdk8以后

接口定义

public interface Inter {
    void method1(Integer a, String b);
}

使用类

public class Demo {
    public void demo(Inter inter) {
        inter.method1(16, "abc");
    }
}

测试类

    public static void main(String[] args) {
        Demo demo = new Demo();
        demo.demo((a, b) -> {
                    System.out.println(a);
                    System.out.println(b);
                }
        );
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值