一个人至少拥有一个梦想,有一个理由去坚强

心若没有栖息的地方,到哪里都是在流浪

函数式接口

什么是函数式接口

  • 只包含一个抽象方法的接口,称为函数式接口。
  • 你可以通过 Lambda 表达式来创建该接口的对象。(若 Lambda 表达式抛出一个受检异常,那么该异常需要在目标接口的抽象方法上进行声明)。
  • 我们可以在任意函数式接口上使用 @FunctionalInterface 注解,这样做可以检查它是否是一个函数式接口,同时 javadoc 也会包含一条声明,说明这个接口是一个函数式接口。

自定义函数式接口

@FunctionalInterface
public interface MyNumber {

    public Integer getValue();
  
}

函数式接口中使用泛型:

@FunctionalInterface

public interface MyFunc<T> {

     public T getValue(T t);
  
}

作为参数传递lambda表达式:

public String toUpperString( MyFunc<String> mf, String str) {
     return mf.getValue(str);
}

作为参数传递lambda表达式:

String newStr = toUpperString( (str) -> str.toUpperCase(), "abcd");
System.out.println(newStr);

注意:

作为参数传递 Lambda 表达式:为了将 Lambda 表达式作为参数传递,接
收Lambda 表达式的参数类型必须是与该 Lambda 表达式兼容的函数式接口
的类型。

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注