函数式接口
本文最后更新于 104 天前,其中的信息可能已经有所发展或是发生改变。

函数式接口

介绍

  • 仅包含一个抽象接口的方法

特点

  1. 接口中有且仅有一个抽象方法
  2. 可以包含静态方法和默认方法
  3. 使用@FunctionInterface注解标识

使用

  1. java提供了大量的内置函数式接口,位于java.util.funciton包中
  2. 也可以自定义函数式接口

示例

@FuncitonalInterface
interface Calculator{
    int calculator(int a, int b);
}

public class Test{
    public static void main(String[] args){
        Calculator add = new Calcaulator(){
            @Override
            public int calculator(int a,int b){
                return a + b;
            }
        }
        add.calculator(10,11);//21
    }
}

java.util.function

介绍

  • java提供的内置函数式接口,是java8的新特性

Predicate<T>

特点

  1. 传入一个参数,返回一个布尔值
  2. 通常用于条件测试

抽象方法

  • boolean test(T t)

示例

public static void main(String[] args){
    Predicate<String> isLength5 = new Predicate<>(){
        @Override
        public boolean test (String str){
            return str.length() > 5;
        }
    }
    isLength5.test("hello");//false
}

其他判断型接口

接口 特点
BiPredicate<T,U> 传入两个参数
DoublePredicate 传入一个double
IntPredicate 传入一个int
LongPredicate 传入一个long

Consumer<T>

特点

  • 传入一个参数,无返回值
  • 通常用于消费数据(打印,写入文件)

抽象方法

  • void accept(T t)

其他消费型接口

接口 特点
BiConsumer<T,U> 传入两个参数
DoubleConsumer 传入一个double
IntConsumer 传入一个int
LongConsumer 传入一个long
ObjDoubleConsumer<T t,double value> 传入一个参数和double
ObjIntConsumer<T t,int value> 传入一个参数和int
ObjLongConsumer<T t,long value> 传入一个参数和long

Supplier<T>

特点

  • 无参,有返回值
  • 通常用于懒加载或生成数据

抽象方法

  • get()

其他奉献型接口

接口 特点
BolleanSupplier 返回一个boolean
IntSupplier 返回一个int
LongSuppier 返回一个long
DoubleSuppier 返回一个double

Function<T,R>

特点

  • 给一个参数,得到一个返回值
  • 通常用于数据转换

抽象方法

  • R apply(T t)

默认方法

方法 描述
default <V> Function<T, V> andThen(Function<? super R, ? extends V> after) 将当前函数的返回值作为参数传递给下一个函数
default <V> Function<V, R> compose(Function<? super V, ? extends T> before) 将另一个函数的返回值作为当前函数的参数

默认方法

其他供给型接口

接口 特点
UnaryOperator<T> 接收一个T类型参数,返回T类型
BinaryOperator<T> 接收两个T类型参数,返回T类型
BiFunction<T,U,R> 接收T,U类型参数,返回R类型
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇