您的位置 首页 java

七爪源码:Java 8 函数式接口看一看

动机

我用 Java 写代码将近 3 年了,但我仍然不是 Java8 专业人士,原因之一可能是编码竞赛,因为在竞赛中我不想花心思去思考 Java Lambda,因为它可能会出错。 但是当我进行开发时,显然 IntelliJ IDE 本身会提供建议/方法,因此我使用了一些 Java8 功能。

但是你知道我为什么说我不是 Java8 专家,因为我不能只依赖 IntelliJ Suggestions。

所以我决定写一篇文章来增强我对 Java8 特性的了解。

所以首先我们来看看函数式接口,它是 Stream 和 Lambdas 中的基本单元。

功能接口

功能接口是一个只有 1 个抽象方法的 Java 接口。 (记住它只能有 1 种方法)。

可以使用 @FunctionalInterface 注释以在编译时检查。

 package java8.fucntional_interface;

@FunctionalInterface
public interface SquareInterface<T> {

    T square(T num);
}  

现在我们知道,如果我们想创建那个类的对象,我们必须实现那个抽象方法。

 package java8.fucntional_interface;

import java.util.Scanner;

public class TestSquareInterface {

    public static void main(String[] args) {

        // initialization
        Scanner scanner = new Scanner(System.in);

        SquareInterface<Integer> integerSquareInterface = new SquareInterface<Integer>() {
            @Override
            public Integer square(Integer num) {
                return num*num;
            }
        };
        
        // lambda initialization
        SquareInterface<Integer> lambdaIntegerSquareInterface = num -> num*num;
        
        // take input
        System.out.println("Enter number: ");
        int number = scanner.nextInt();

        // logic implementation
        int squareOfNumber = integerSquareInterface.square(number);

        // show output
        System.out.printf("Number: %d and Square: %d", number, squareOfNumber);
    }
}  

我们可以将该实现转换为 lamdas。 (20号线)

我们知道每种方法都有 3 件事

  1. 方法输入(参数)
  2. 方法体
  3. 方法输出(返回)

现在如果你知道这 3 个在 Lambda 表达式中的位置,

您可以通过此模板将其转换为 lambda

七爪源码:Java 8 函数式接口看一看

可能你现在有点困惑,但是一旦你看到越来越多的 lambdas 表达式和代码,你就会获得经验。

所以你可以看到Lamdas和Functional Interface是如何相关的。

到目前为止,我已经在这个博客上投入了将近 1.5 个多小时,所以我在这里停止它,稍后我将继续它。

下一个议程

继续这一点,我们将看到 Java 中的流和一些内置功能接口,我们将在任何地方的流中使用 Lambda。

谢谢 …

关注七爪网,获取更多APP/小程序/网站源码资源!

文章来源:智云一二三科技

文章标题:七爪源码:Java 8 函数式接口看一看

文章地址:https://www.zhihuclub.com/174872.shtml

关于作者: 智云科技

热门文章

网站地图