函数式编程:要想使用函数式编程,接口必须只有一个方法,若存在两个方法,则无法使用函数式编程.所有我们为此有产生了一个相应的注解:@FunctionalInterface:
范例:
@FunctionalInterface//函数式编程,只允许存在一个方法
interface IMessage{
public String fun();//接口中的抽象方法
}
public class Test {
public static void main(String[] args) {
IMessage message = () ->{
return "Hello";
};
System.out.println(message.fun());
}
}
函数式编程语法如下:
(参数) -> 单行语句;
该方法只包含一行语句,直接写单句即可;若存在多行语句,可采取"{}",对应语法如下:
(参数) -> {};
对应举例:
//单行语句举例:
@FunctionalInterface//函数式编程,只允许存在一个方法
interface IMessage{
public void fun();//接口中的抽象方法
}
public class Test {
public static void main(String[] args) {
IMessage message = () -> System.out.println("Hello");
message.fun();
}
}
//多行语句举例:
@FunctionalInterface//函数式编程,只允许存在一个方法
interface IMessage{
public void fun();//接口中的抽象方法
}
public class Test {
public static void main(String[] args) {
IMessage message = () -> {
System.out.println("Hello");
System.out.println("World");
};
message.fun();
}
}
若对应表达式中只有一行数据进行返回,可以直接用语句,可以不适用return.
举例:
@FunctionalInterface//函数式编程,只允许存在一个方法
interface IMessage{
public int add(int x,int y);//接口中的抽象方法
}
public class Test {
public static void main(String[] args) {
IMessage message = (p1,p2)->p1+p2;//虽然返回值为int,但因为只有一行返回,可以不使用return
System.out.println(message.add(10,23));
}
}