【Java】函数式接口与Lambda表达式
生活随笔
收集整理的這篇文章主要介紹了
【Java】函数式接口与Lambda表达式
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
函數式接口——@FunctionalInterface
Code
@FunctionalInterface interface IService {void say(String message); }public class FunctionalInterfaceTest {public static void main(String[] args) {IService serviceObj = message -> System.out.println("Hello, " + message);serviceObj.say("Sam");} }輸出結果
Hello, SamJava8前已有的函數式接口
- java.lang.Runnable
- java.util.concurrent.Callable
- java.security.PrivilegedAction
- java.util.Comparator
- java.io.FileFilter
- java.nio.file.PathMatcher
- java.lang.reflect.InvocationHandler
- java.beans.PropertyChangeListener
- java.awt.event.ActionListener
- javax.swing.event.ChangeListener
Java8新增的package→java.util.function
內含43個函數式接口,如下:
| BiConsumer<T,U> | 代表了一個接受兩個輸入參數的操作,并且不返回任何結果 |
| BiFunction<T,U,R> | 代表了一個接受兩個輸入參數的方法,并且返回一個結果 |
| BinaryOperator<T> | 代表了一個作用于于兩個同類型操作符的操作,并且返回了操作符同類型的結果 |
| BiPredicate<T,U> | 代表了一個兩個參數的boolean值方法 |
| BooleanSupplier | 代表了boolean值結果的提供方 |
| Consumer<T> | 代表了接受一個輸入參數并且無返回的操作 |
| DoubleBinaryOperator | 代表了作用于兩個double值操作符的操作,并且返回了一個double值的結果 |
| DoubleConsumer | 代表一個接受double值參數的操作,并且不返回結果 |
| DoubleFunction<R> | 代表接受一個double值參數的方法,并且返回結果 |
| DoublePredicate | 代表一個擁有double值參數的boolean值方法 |
| DoubleSupplier | 代表一個double值結構的提供方 |
| DoubleToIntFunction | 接受一個double類型輸入,返回一個int類型結果 |
| DoubleToLongFunction | 接受一個double類型輸入,返回一個long類型結果 |
| DoubleUnaryOperator | 接受一個參數同為類型double,返回值類型也為double |
| Function<T,R> | 接受一個輸入參數,返回一個結果 |
| IntBinaryOperator | 接受兩個參數同為類型int,返回值類型也為int |
| IntConsumer | 接受一個int類型的輸入參數,無返回值 |
| IntFunction<R> | 接受一個int類型輸入參數,返回一個結果 |
| IntPredicate | 接受一個int輸入參數,返回一個布爾值的結果 |
| IntSupplier | 無參數,返回一個int類型結果 |
| IntToDoubleFunction | 接受一個int類型輸入,返回一個double類型結果 |
| IntToLongFunction | 接受一個int類型輸入,返回一個long類型結果 |
| IntUnaryOperator | 接受一個參數同為類型int,返回值類型也為int |
| LongBinaryOperator | 接受兩個參數同為類型long,返回值類型也為long |
| LongConsumer | 接受一個long類型的輸入參數,無返回值 |
| LongFunction<R> | 接受一個long類型輸入參數,返回一個結果 |
| LongPredicate | R接受一個long輸入參數,返回一個布爾值類型結果 |
| LongSupplier | 無參數,返回一個結果long類型的值 |
| LongToDoubleFunction | 接受一個long類型輸入,返回一個double類型結果 |
| LongToIntFunction | 接受一個long類型輸入,返回一個int類型結果 |
| LongUnaryOperator | 接受一個參數同為類型long,返回值類型也為long |
| ObjDoubleConsumer<T> | 接受一個object類型和一個double類型的輸入參數,無返回值 |
| ObjIntConsumer<T> | 接受一個object類型和一個int類型的輸入參數,無返回值 |
| ObjLongConsumer<T> | 接受一個object類型和一個long類型的輸入參數,無返回值 |
| Predicate<T> | 接受一個輸入參數,返回一個布爾值結果 |
| Supplier<T> | 無參數,返回一個結果 |
| ToDoubleBiFunction<T,U> | 接受兩個輸入參數,返回一個double類型結果 |
| ToDoubleFunction<T> | 接受一個輸入參數,返回一個double類型結果 |
| ToIntBiFunction<T,U> | 接受兩個輸入參數,返回一個int類型結果 |
| ToIntFunction<T> | 接受一個輸入參數,返回一個int類型結果 |
| ToLongBiFunction<T,U> | 接受兩個輸入參數,返回一個long類型結果 |
| ToLongFunction<T> | 接受一個輸入參數,返回一個long類型結果 |
| UnaryOperator<T> | 接受一個參數為類型T,返回值類型也為T |
總結
以上是生活随笔為你收集整理的【Java】函数式接口与Lambda表达式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【操作系统】Semaphore处理读者-
- 下一篇: java美元兑换,(Java实现) 美元