lambda表达式:简化线程(用一次)的使用
lambdaj表达式在jdbk8以后才能用

看代码
package com.cb.thread;
/*
* lambda推导
*/
public class lambdaTest01 {
//2.内部类
static class Like2 implements ILike{
@Override
public void lambda() {
System.out.println("i like lambda2");
}
}
public static void main(String[] args) {
//1.
ILike like = new Like();
like.lambda();
//2
like = new Like2();
like.lambda();
//3.方法内部类
class Like3 implements ILike{
@Override
public void lambda() {
System.out.println("i like lambda3");
}
}
like = new Like3();
like.lambda();
//4 匿名内部类
like = new ILike() {
@Override
public void lambda() {
System.out.println("i like lambda4");
}
};
like.lambda();
//5.lambda 如果接口有两个方法就不能用
/*like = ()->{
System.out.println("i like lambda5");
};*/
//这样的不行,没有类型
/*()->{
System.out.println("i like lambda5");
}*/
}
}
interface ILike{
void lambda();
}
//外部类
class Like implements ILike{
@Override
public void lambda() {
System.out.println("i like lambda");
}
}
第二个例子
package com.cb.thread;
/*
* lambda推导 +参数
*/
public class lambdaTest02 {
//2.内部类
static class Love2 implements ILove{
@Override
public void lambda(int a ) {
System.out.println(" i like2 lambda"+"-->"+a);
}
}
public static void main(String[] args) {
// 1)
/*ILove love = (int a)->{
System.out.println("i like lambda"+"-->"+a);
};
love.lambda(100);*/
// 2)
/*ILove love = (a)->{
System.out.println("i like lambda"+"-->"+a);
};
love.lambda(50);*/
// 3)
/*love = a->{
System.out.println("i like lambda"+"-->"+a);
};
love.lambda(5);*/
// 4)
/*love = a->System.out.println("i like lambda"+"-->"+a);
love.lambda(0);
*/
}
interface ILove{
void lambda(int a );
}
//外部类
class Love1 implements ILove{
@Override
public void lambda(int a ) {
System.out.println("i like lambda"+"-->"+a);
}
}
}
第三个例子
package com.cb.thread;
/*
* lambda推导 +参数+返回值的
*/
public class lambdaTest03 {
//2.内部类
static class Love2 implements ILove{
@Override
public int lambda(int a,int b ) {
System.out.println(" i like2 lambda"+"-->"+a);
return a+b;
}
}
public static void main(String[] args) {
/*ILove love = lambda(int a,int b)-> {
System.out.println(a);
return a+b;
};
love.lambda(10, 20);*/
//简化
/* love = ( a, b)-> {
System.out.println(a);
return a+b;
};
love.lambda(30, 40);*/
}
interface ILove{
int lambda(int a,int b);
}
//外部类
class Love1 implements ILove{
@Override
public int lambda(int a,int b) {
System.out.println(a);
return a+b;
}
}
}
第四个例子
package com.cb.thread;
/*
* Lambda表达式 简化线程(用一次)的使用
*/
public class LambtdaThread {
//1.静态内部类(提升性能,如果不用就不会编译)
static class Test implements Runnable{
@Override
public void run() {
for (int i = 0; i < 20; i++) {
System.out.println("一边听歌");
}
}
}
public static void main(String[] args) {
//new Thread(new Test()).start();
//2.局部内部类(也就是方法里面的类)
class Test2 implements Runnable{
@Override
public void run() {
for (int i = 0; i < 20; i++) {
System.out.println("一边听歌");
}
}
}
new Thread(new Test2()).start();
//3.匿名内部类 必须借助接口或者父类
new Thread(new Runnable() {
@Override
//方法体
public void run() {
for (int i = 0; i < 20; i++) {
System.out.println("一边听歌");
}
}
}).start();
//4.jdk8 简化 lambda (只能一个方法,多个方法不能推导)
/*new Thread(()-> {
for (int i = 0; i < 20; i++) {
System.out.println("一边听歌");
}
}).start();*/
}
}
第五个例子
package com.cb.thread;
/*
* lambda推导 :多行语句不能省略
*/
public class lambdaTest04 {
public static void main(String[] args) {
/*new Thread(()->{
for (int i = 0; i < 10; i++) {
System.out.println("一边学习lambda");
}
}).start();
//简化
new Thread(()-> System.out.println("一边崩溃")).start();
*/
}
}
看不懂看这个视频 lambda视频
本文深入探讨了Lambda表达式的多种应用场景,包括简化线程使用、参数传递及返回值处理等,通过实例展示了如何利用Lambda表达式提高代码效率和可读性。
326

被折叠的 条评论
为什么被折叠?



