2021-04-15
作者:互联网
lamdba表达式推导
1.在外部实现接口
package kuang.com;
public class test {
public static void main(String[] args) {
Ilike1 like = new Like1();//接口名来实例化类
like.lamdba();
}
}
//函数式接口(接口中只包含一个抽象方法)
interface Ilike1
{
void lamdba();
}
//接口实现类
class Like1 implements Ilike1
{
@Override
public void lamdba() {
System.out.println("i like 1");
}
}
2.静态内部类
package kuang.com;
public class test {
static class Like1 implements Ilike1
{
@Override
public void lamdba() {
System.out.println("i like 1");
}
}
public static void main(String[] args) {
Ilike1 like = new Like1();
like.lamdba();
}
}
//函数式接口(接口中只包含一个抽象方法)
interface Ilike1
{
void lamdba();
}
3.局部内部类
package kuang.com;
public class test {
public static void main(String[] args) {
class Like1 implements Ilike1
{
@Override
public void lamdba() {
System.out.println("i like 1");
}
}
Ilike1 like = new Like1();
like.lamdba();
}
}
//函数式接口(接口中只包含一个抽象方法)
interface Ilike1
{
void lamdba();
}
4.匿名内部类
package kuang.com;
public class test {
public static void main(String[] args) {
//匿名内部类 没有类的名称 必须借助接口或方法
Ilike1 like = new Ilike1() {
@Override
public void lamdba() {
System.out.println("i like 1");
}
};
like.lamdba();
}
}
//函数式接口(接口中只包含一个抽象方法)
interface Ilike1
{
void lamdba();
}
5.lambda表达式
package kuang.com;
public class test {
public static void main(String[] args) {
//lambda表达式
Ilike1 like = () ->{
System.out.println("i like 1");
};
like.lamdba();
}
}
//函数式接口(接口中只包含一个抽象方法)
interface Ilike1
{
void lamdba();
}
简化lamdba表达式
package kuang.com;
public class TestLamabda {
public static void main(String[] args) {
Ilike ilike = (int a)-> {
System.out.println("i like lamabda"+a);
};
ilike.Lamabda(2);
}}
//函数式接口(接口中只包含一个抽象方法)
interface Ilike
{
void Lamabda(int a);
}
//接口实现类
简化参数类型
package kuang.com;
public class TestLamabda {
public static void main(String[] args) {
//简化参数类型
Ilike ilike = (a)-> {
System.out.println("i like lamabda"+a);
};
ilike.Lamabda(2);
}}
//函数式接口(接口中只包含一个抽象方法)
interface Ilike
{
void Lamabda(int a);
}
//接口实现类
简化括号
package kuang.com;
public class TestLamabda {
public static void main(String[] args) {
//简化括号
Ilike ilike = a-> {
System.out.println("i like lamabda"+a);
};
ilike.Lamabda(2);
}}
//函数式接口(接口中只包含一个抽象方法)
interface Ilike
{
void Lamabda(int a);
}
//接口实现类
简化花括号
package kuang.com;
public class TestLamabda {
public static void main(String[] args) {
//简化花括号
Ilike ilike = a-> System.out.println("i like lamabda"+a);
ilike.Lamabda(2);
}}
//函数式接口(接口中只包含一个抽象方法)
interface Ilike
{
void Lamabda(int a);
}
//接口实现类
总结
- lamdba表达式只有一行代码时才能简化成一行,如果有多行就用代码块包裹
- 前提是接口是函数式接口
- 多个参数也可去掉数据类型,要去掉就都去掉,且加上括号
标签:15,like,04,void,lamdba,接口,Ilike1,2021,public 来源: https://blog.csdn.net/weixin_55682515/article/details/115729873