package _12day;
public class Demo {
public static void main(String[] args) {
INoReturnNoParam sc =() -> System.out.println("None");
sc.test();
INoReturnNoParam sc1 = a -> System.out.println( "a的值是:" + a);
sc1.test( 3 );
INoReturnNoParam sc2 = (b , a) -> System.out.println(a + "Two" + b);
sc2.test(1 , 2);
IHasReturnNoParam sc3 = () -> 3;
System.out.println("return none" + IHasReturnNoParam.test());
IHasReturnNoParam sc4 = (a) -> a;
System.out.println("return one" + IHasReturnNoParam.method(5));
IHasReturnNoParam sc5 = (a,b) -> a + b;
System.out.println("return two " + IHasReturnNoParam.test(5, 1));
}
//无返回值无参数的功能接口
@FunctionalInterface
interface INoReturnNoParam {
void test();
}
//无返回值有一个参数的功能接口
@FunctionalInterface
interface INoReturnOneParam {
void test(int a);
}
//无返回值两个参数的功能接口
@FunctionalInterface
interface INoReturnTwoParam {
void test(int a, int b);
}

//有返回值无参数的功能接口
@FunctionalInterface
interface IHasReturnNoParam {
int test();
}
//有返回值一个参数的功能接口
@FunctionalInterface
interface IHasReturnOneParam {
int method(int a);
}
//有返回值两个参数的功能接口
@FunctionalInterface
interface IHasReturnTwoParam {
int test(int a, int b);
}
}
public static void main(String[] args) {
INoReturnNoParam sc =() -> System.out.println("None");
sc.test();
//INoReturnNoParam sc1 = a -> System.out.println( "a的值是:" + a);
INoReturnOneParam sc1 = a -> System.out.println( "a的值是:" + a);
sc1.test( 3);
//INoReturnNoParam sc2 = (b , a) -> System.out.println(a + "Two" + b);
INoReturnTwoParam sc2 = (b , a) -> System.out.println(a + "Two" + b);
sc2.test(1 , 2);
IHasReturnNoParam sc3 = () -> 3;
//System.out.println("return none" + IHasReturnNoParam.test());
System.out.println("return none" + sc3.test());
//IHasReturnNoParam sc4 = (a) -> a;
IHasReturnOneParam sc4 = (a) -> a;
//System.out.println("return one" + IHasReturnNoParam.method(5));
System.out.println("return one" + sc4.method(5));
//IHasReturnNoParam sc5 = (a,b) -> a + b;
IHasReturnTwoParam sc5 = (a,b) -> a + b;
//System.out.println("return two " + IHasReturnNoParam.test(5, 1));
System.out.println("return two " + sc5.test(5, 1));
}
看了很久才看明白,建议将代码改成如下,后可以运行成功:
public class Test {
public static void main(String[] args) {
INoReturnNoParam sc = () -> System.out.println("None");
sc.test();
INoReturnOneParam sc1 = a -> System.out.println("a的值是:" + a);
sc1.test(3);
INoReturnTwoParam sc2 = (b, a) -> System.out.println(a + "Two" + b);
sc2.test(1, 2);
IHasReturnNoParam sc3 = () -> 3;
System.out.println("return none" + sc3.test());
IHasReturnOneParam sc4 = (a) -> a;
System.out.println("return one" + sc4.method(5));
IHasReturnTwoParam sc5 = (a, b) -> a + b;
System.out.println("return two " + sc5.test(5, 1));
}
}
//无返回值无参数的功能接口
@FunctionalInterface
interface INoReturnNoParam {
void test();
}
//无返回值有一个参数的功能接口
@FunctionalInterface
interface INoReturnOneParam {
void test(int a);
}
//无返回值两个参数的功能接口
@FunctionalInterface
interface INoReturnTwoParam {
void test(int a, int b);
}
//有返回值无参数的功能接口
@FunctionalInterface
interface IHasReturnNoParam {
int test();
}
//有返回值一个参数的功能接口
@FunctionalInterface
interface IHasReturnOneParam {
int method(int a);
}
//有返回值两个参数的功能接口
@FunctionalInterface
interface IHasReturnTwoParam {
int test(int a, int b);
}