Java 流式操作 Stream(15) 面向對象引用傳參&&函數式引用傳參
package com.lius.stream;
import java.util.function.Consumer;
import java.util.function.IntConsumer;
/**
* <p>面向對象引用傳參&&函數式引用傳參</p>
* <p>1.面向對象引用傳參傳遞的是調用的是類以及類實例本身</p>
* <p>2.函數式引用傳參傳遞的是調用的是類以及類實例的函數式代碼</p>
*/
public class streamTest9 {
/**
* 測試對象引用傳參以及函數式引用傳參方法
* @param consumer
*/
private static void testConsumer(Consumer<Integer> consumer){
consumer.accept(1000);
}
public static void main(String[] args) {
//創建Consumer以及IntConsumer函數表達式
Consumer<Integer> consumer = i->System.out.println(i);
IntConsumer intConsumer = i->System.out.println(i);
//測試對象引用傳參
testConsumer(consumer);//1000 傳遞的是consumer對象
// testConsumer(intConsumer);//報錯 傳遞的是intConsumer對象
//測試函數式引用傳參
testConsumer(consumer::accept);//1000 傳遞的是i->System.out.println(i)函數式代碼
testConsumer(intConsumer::accept);//1000 傳遞的是i->System.out.println(i)函數式代碼
}
}