Java 8,静态方法与函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java 8,静态方法与函数相关的知识,希望对你有一定的参考价值。

在Java 8中,我想创建一些返回参数的东西,或者如果参数为null则创建一个实例。

我可以通过创建静态方法或UnaryOperator来完成此操作。以下方法在技术上是否相同,或者是否存在技术差异,我应该注意这两种方法:

静态方法

static Cat initOrReturn(Cat c) {
    if (c==null) {
        return new Cat();
    }
    return c;
}

功能

UnaryOperator<Cat> initOrReturn = c -> {
    if (c==null) {
        return new Cat();
    }
    return c;
}
答案

首先你的代码有语法错误,在c{之间的第二个第一行应该有一个->

第二个创建一个匿名对象,第一个只创建一个静态方法。 所以他们不一样。

此外,静态方法可以在流API中使用。 如果你有:

class A {
  static Object a(Object x) { return x; /* replace with your code */ }
}

您可以:

xxxList().stream().map(A::a)

创建方法通常被认为是脏的,因为它是全局可见的。 建议在不声明变量的情况下使用lambda表达式。

以上是关于Java 8,静态方法与函数的主要内容,如果未能解决你的问题,请参考以下文章

C#常用代码片段备忘

VSCode自定义代码片段8——声明函数

socket实现人多聊天与Java代码加载过程

《On Java 8》中文版 第十三章 函数式编程

片段中的网格视图

静态代码块构造代码块构造函数以及Java类初始化顺序