为了账号安全,请及时绑定邮箱和手机立即绑定

JAVA Lambda 常見的函數接口

标签:
Java
package idv.zjh.lembda;

import java.util.function.Consumer;
import java.util.function.IntConsumer;
import java.util.function.Supplier;
import java.util.function.UnaryOperator;
import java.util.function.BinaryOperator;
import java.util.function.BiFunction;
import java.util.function.Function;

public class MathodRefrece {
	/**
	 * Predicate 傳入一個參數, 返回Boolean函數
	 */
	public static void Predicate() {
		java.util.function.Predicate<String> demo = (s) -> "S".equals(s);
		System.out.println(demo.test("S2"));
	}

	/**
	 * Consumer<String> 接收一個參數 String 不返回資料
	 */
	public static void Consumer() {
		// 接收參數不回傳
		Consumer<String> consumerDemo = (s) -> System.out.println("Consumer:" + s);
		consumerDemo.accept("123");

		// 接收整數參數
		IntConsumer intConsumerDemo = (i) -> System.out.println(i * i);
		intConsumerDemo.accept(10);

		// 方法引用
//		Consumer<String> consumerMethodDemo = System.out::println;
//		consumerMethodDemo.accept("456");
	}

	/**
	 * Function<Integer, String> 接收一個參數 <Integer 返回一個參數 String>
	 */
	public static void Function() {
		Function<Integer, String> powFunc = (i) -> i + "的" + i + "次方:" + Math.pow(i, i);
		System.out.println(powFunc.apply(5));
	}

	/**
	 * Supplier<String> 不接受參數 返回一個參數 <String>
	 */
	public static void Supplier() {
		Supplier<String> supplier = () -> "supplier";
		System.out.println("this is " + supplier.get());
	}

	/**
	 * UnaryOperator<String> 接收一個參數 <String> 返回一個參數 <String>
	 */
	public static void UnaryOperator() {
		UnaryOperator<String> unaryOperator = (s) -> "I am" + s;
		System.out.println("this is " + unaryOperator.apply("Terence"));
	}

	/**
	 * BinaryOperator<Integer>接收兩個參數<Integer> ,返回一個參數<Integer>
	 */
	public static void BinaryOperator() {
		BinaryOperator<Integer> binaryOperator = (num1, num2) -> num1 + num2;
		System.out.println("sum:" + binaryOperator.apply(6, 11));
	}

	public static void BiFunction() {
		BiFunction<String, Integer, String> biFunction = (word, price) -> word + ":" + price;
		System.out.println(biFunction.apply("蘋果的價格", 100));
	}

	/*
	 * 方法引用一般有三种格式:
	 * 
	 * 1. 实例对象名::实例方法名 2. 类名::静态方法名 3. 类名::实例方法名
	 */

}
点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
JAVA开发工程师
手记
粉丝
0
获赞与收藏
0

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消