我们是以jdk1.8。完成接口的使用。
1 定义一个接口,方法中具有多个参数,没有返回值。我们看看使用lambad方式如何使用。
package com.zxf.dLambda;
public interface NoneReturnMutipleParameter {
//多个参数,无返回值。
public void f1(int x,int y);
}
@Test
public void test3(){
//多个参数,无返回值。
NoneReturnMutipleParameter lambad3=(int x,int y)->{
System.out.println("多个参数,无返回值"+(x+y));
};
lambad3.f1(4,5);
}
@Test
public void test3_1(){
//多个参数,无返回值。简略写法。
NoneReturnMutipleParameter lambad3_1=(x,y)->System.out.println("多个参数,无返回值"+(x+y));
lambad3_1.f1(2,3);
}
2 没有参数,没有返回值的使用
package com.zxf.dLambda;
public interface NoneReturnParameter {
//无参 无返回值
void f1();
}
@Test
public void test1(){
//无参 无返回值
NoneReturnParameter lamdba1=()->{
System.out.println("这是一个无参数,无返回值的方法。");
};
lamdba1.f1();
}
3 一个参数,没有返回值。
package com.zxf.dLambda;
public interface NoneReturnSingleParameter {
//一个参数,没有返回值
public void f1(int r);
}
@Test
public void test2(){
//一个参数,没有返回值
NoneReturnSingleParameter lambad2=(int x)->{
System.out.println("一个参数,没有返回值!"+x);
};
lambad2.f1(324);
}
4 多个参数,有返回值的。
package com.zxf.dLambda;
public interface SingleReturnMutipleParameter {
//多个参数,有返回值
public String f1(int a,int b);
}
@Test
public void test6(){
//多个参数,有返回值
SingleReturnMutipleParameter lambad6=(int x,int y)->{
return "计算的结果为:"+(x+y);
};
String s = lambad6.f1(5, 5);
System.out.println(s);
}
5 没有参数,有返回值。
package com.zxf.dLambda;
public interface SingleReturnNoneParameter {
//无参,有返回值。
public int f1();
}
@Test
public void test4(){
//无参,有返回值。
SingleReturnNoneParameter lambad4=()->{
return 34;
};
int x=lambad4.f1();
System.out.println(x);
}
6 一个参数,有返回值。
package com.zxf.dLambda;
public interface SingleReturnSingleParameter {
//一个参数 有返回值
public int f1(int c);
}
@Test
public void test5(){
//一个参数 有返回值
SingleReturnSingleParameter lambad5=(int x)->{
return x+5;
};
int i = lambad5.f1(30);
System.out.println(i);
}
@Test
public void test5_1(){
//一个参数 有返回值 ,简略写法。
/*
可以省略参数的类型定义,还可以省略{};
*/
SingleReturnSingleParameter lambad5_1=x->x+5;
int i=lambad5_1.f1(15);
System.out.println(i);
}
大家可以尝试使用java8提供的lambda表达式写法。有问题在留言讨论。