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);
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律