• 文章
  • 在线工具

Java8新特性之函数式接口

java8新特性
982
Java 8新特性之函数式接口
  • 速度更快
  • 代码更少
  • 强大的Stream API
  • 便于并行
  • 最大化减少空指针异常(Optional)
其中最为核心的是Lambda表达式和Stream API
Lambda表达式的函数式接口 @FunctionalInterface
Lambda表达式是一个匿名函数。
理解:相当于Lambda是实现接口一样。匿名内部类一样。
自定义Lambda方法:
@Test
public void test2(){
//左侧x为接口参数,右侧语句为实现。
   String str = getvalue("hello world", x -> x.toUpperCase());
   System.out.print(str);
}
public String getvalue(String str,MyFunction my){
return my.getValue(str);
}
@FunctionalInterface   //函数接口注解
public interface MyFunction{
public String getValue(String str);
}

*注意:被@FunctionalInterface标识的接口只能有一个方法非default方法,不能没有或者有多个抽象方法的出现,否则会验证不合法

(下面就是加defaut 默认的扩展方法)

接口的默认方法(扩展方法)

Java 8新特性允许我们给接口添加一个非抽象的方法实现,只需要使用 default关键字即可,这个特征又叫做扩展方法

扩展方法不能够重写(也称复写或覆盖) Object 中的方法,却可以重载Object 中的方法

interface A{

void run(String a);


  default void a(){
System.out.println("123");
  }

}


评论
或者使用社交账号快捷登录