Java教程

JDK8函数式编程进阶学习(一)

本文主要是介绍JDK8函数式编程进阶学习(一),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

前言及常用的可以看这个:

Java8新特性学习-函数式编程(Stream/Function/Optional/Consumer)_icarusliu的专栏-CSDN博客_java 函数式编程

我直接上代码,加上简单的说明

package com.xiongzai.lambda;

import java.awt.event.ActionListener;
import java.util.function.BinaryOperator;
import java.util.function.Consumer;
import java.util.function.IntConsumer;

public class LambdaDemo {
    public static void main(String[] args) {
        /*demo1 ()中没有参数,表示无参方法,返回类型为 void,也可使用大括号*/
        Runnable demo1 = () -> System.out.println("Hello World");
        demo1 = () -> {
            System.out.println("Hello World");
        };

        /*demo2 只有一行代码,一个参数 e,返回类型为 void,也可以是一段代码块,使用大括号({})将代码块括起来*/
        IntConsumer demo2 = e -> System.out.println("Hello World");
        demo2 = e -> {
            System.out.println("Hello World");
        };

        /*()中没有参数,表示无参方法,返回类型为 void,可以用返回或抛出异常来退出*/
        Runnable demo3 = () -> {
            System.out.print("Hello");
            System.out.println(" World");
        };
        demo3 = () -> {
            int num = 1;
            if (num == 1) {
                System.out.print("Hello");
                return;
            } else {
                try {
                    System.out.println(" World");
                } catch (Exception e) {
                    throw e;
                }
            }
        };

/*demo4 并不是将两个数字相加,而是创建了一个函数,用来计算两个数字相加的结果,尽量别用这种方式,防止未知错误
请记住一句话:所有 Lambda 表达式中的参数类型都是由编译器推断得出的*/
        BinaryOperator<Long> demo4 = (x, y) -> x + y;

        /*demo5和demo4一样,只是用的显式声明参数类型,需要使用小括号将参数括起来*/
        BinaryOperator<Long> demo5 = (Long x, Long y) -> x + y;

    }
}

 

这篇关于JDK8函数式编程进阶学习(一)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!