JDK1.8新特性Lambda表达式
2024-09-07 08:05:59
/**
* Lambda
* @date 2019/8/2 10:03
*/
public class Lamda {
public static void main(String[] args){
IEat iEat=new IEatImpl() ;
iEat.eat("苹果"); IEat iEat1=new IEat(){//内部类new接口IEat()是接口//匿名内部类
@Override
public void eat( String thing) {
System.out.println("eat banna"+thing);
}
};
iEat1.eat("香蕉"); //Lambda 功能和上面一样
//1.代码更简洁,2.不能生成单度的class文件,3.只能实现一个方法
//带参数使用,可以省略参数类型(String thing)可以写成thing
//(实现方法的参数)->{这里面写实现方法}
IEat iEat2=(String thing)->{System.out.println("我是实现类"+thing);};
iEat2.eat("橘子");
IEat iEat5= thing->System.out.println("更简洁的写法"+thing);//更简洁的写法
iEat5.eat("更简洁");
//-------------------------------------------------------------
//4.带返回值的:
IEat1 iEat3=(thing)->{
System.out.println("我是实现类"+thing);
System.out.println("可以多句"+thing);
return 10;
};
iEat3.eat("葡萄");
//5.带返回值还可以写成
IEat1 iEat4 = (thing)->thing==null?1:0;
//参数中可以写final String thing
} }
interface IEat{
public void eat(String thing);//可以传参
//接口中可以有一个default默认方法 对Lambda表达式没有影响
public default void print(){
System.out.println("我是接口的默认方法");
}
} class IEatImpl implements IEat{ @Override
public void eat(String thing) {
System.out.println("吃"+thing);
}
}
//带返回值的接口
interface IEat1{
public int eat(String thing);//可以传参
}
把匿名内部类的写法简单化,实现一个接口的方法.
最新文章
- mysql导入大文件sql
- iwebshop二次开发(2)
- leveldb - sstable格式
- oracle—无法启动
- 如何查看eclipse或Myeclipse的版本号
- Seay工具分享
- spring+hibernate+jpa+Druid的配置文件,spring整合Druid
- Aircrack-ng 工具箱
- 上一篇下一篇 排序 (非ID字段排序)
- SubLime2 win + mac keygen
- Qt4.8.x Linux WebKit依赖库安装
- postman断言作用及怎么使用
- java基础02 数据类型转
- Kafka系列之-Kafka监控工具KafkaOffsetMonitor配置及使用
- Filter防止用户访问一些未被授权的资源
- Linux成为云计算平台的主流操作系统
- JavaScript中的number跟string
- shell 或 Makefile 学习网站
- [Leetcode]146.LRU缓存机制
- 微软BI 之SSRS 系列 - 如何实现报表导航 Navigation 和钻取 Drill Down 的效果