lambda表达式与内部类学习

package com.lambda;

public class Test {

static class Believe1 implements IBelieve {

//3、静态内部类
@Override
public void believe(String s) {
System.out.println("我爱你" + s);
}
}
public static void main(String[] args) {
IBelieve believe = new Believe();
believe.believe("中国");

believe = new Believe1();
believe.believe("中国1");

//4、局部内部类
class Believe2 implements IBelieve {
@Override
public void believe(String s) {
System.out.println("我爱你" + s);
}
}
believe = new Believe2();
believe.believe("中国2");

//5、匿名内部类,没有类的名称,必须借助接口或者父类
believe = new IBelieve() {
@Override
public void believe(String s) {
System.out.println("我爱你" + s);
}
};
believe.believe("中国3");


//1、lambda表达式简化
believe =(String s)-> {
System.out.println("我爱你" + s);
};
believe.believe("中国4");

//简化1、参数类型
believe =( s)-> {
System.out.println("我爱你" + s);
};
believe.believe("中国5");

//简化2、简化括号
believe =s -> {
System.out.println("我爱你" + s);
};
believe.believe("中国6");

//简化3、去掉花括号
believe = s-> System.out.println("我爱你" + s);
believe.believe("中国7");
//总结:
//lambda表达式只能有一行代码的情况下才能简化成为一行,如果有多行,那么就用代码块包裹。
//前提是接口为函数式接口:接口里面只有一个方法。
//多个参数也可以去掉参数类型,要去掉就都去掉

}
}
//1、定义一个函数式接口
interface IBelieve{
void believe(String s);
}
//2、实现类
class Believe implements IBelieve{
@Override
public void believe(String s) {
System.out.println("我爱你"+s);
}
}
posted @   tuyin  阅读(33)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示