直接上代码,Lambda的前提是接口为函数式接口【即接口内只有一个方法】
package com.daiy.lambda;
public class LambdaTest01 {
//3、静态内部类
static class You2 implements Hobby{
@Override
public void hobbys(String str) {
System.out.println("你喜欢拉姆达表达式"+str);
}
}
public static void main(String[] args) {
Hobby hobby = new You();
hobby.hobbys("111");
hobby = new You2();
hobby.hobbys("222");
//4、局部内部类
class You3 implements Hobby{
@Override
public void hobbys(String str) {
System.out.println("你喜欢拉姆达表达式"+str);
}
}
hobby = new You3();
hobby.hobbys("333");
//5、匿名内部类
hobby = new Hobby() {
@Override
public void hobbys(String str) {
System.out.println("你喜欢拉姆达表达式"+str);
}
};
hobby.hobbys("444");
/********************************************************************************/
//6、lambda拉姆达表达式简化1
hobby=(String str)-> {
System.out.println("你喜欢拉姆达表达式"+str);
};
hobby.hobbys("555");
//7、lambda拉姆达表达式简化2【省去参数类型】
hobby=(str)-> {
System.out.println("你喜欢拉姆达表达式"+str);
};
hobby.hobbys("666");
//8、lambda拉姆达表达式简化3【省去括号】
hobby=str-> {
System.out.println("你喜欢拉姆达表达式"+str);
};
hobby.hobbys("777");
//9、lambda拉姆达表达式简化4【省去花括号】【【简化成一行的前提是只有一行代码的情况下才可以】】
hobby=str-> System.out.println("你喜欢拉姆达表达式"+str);
hobby.hobbys("888");
}
}
//1、定义一个函数式接口[只包含一个抽象方法的接口]
interface Hobby{
void hobbys(String str);
}
//2、实现类
class You implements Hobby{
@Override
public void hobbys(String str) {
System.out.println("你喜欢拉姆达表达式"+str);
}
}