【问题标题】:How to use method reference when checking two strings are equal in Java 8?在 Java 8 中检查两个字符串是否相等时如何使用方法引用?
【发布时间】:2020-06-14 12:52:46
【问题描述】:

我是 Java 8 的新手,刚刚开始学习。

这是我的代码 sn-p。

String name = "yoga";
List<String> names = Arrays.asList("yoga", "kani");

我用 lambda 做了,效果很好

Optional<String> resultSet = names.stream().filter(r->r.equals(name)).map(String::toUpperCase).findAny();

如何使用方法参考进行等号检查。有可能吗?

提前致谢。

【问题讨论】:

  • name::equals.

标签: java lambda java-8 method-reference


【解决方案1】:

r-&gt;r.equals(name) 无法转换为方法引用,因为 Java 语言不支持。但是,您可以做一个小技巧:由于str1.equals(str2) 返回与str2.equals(str1) 相同的结果(空值除外,但这里不是这种情况),您可以将r -&gt; r.equals(name) 重写为r -&gt; name.equals(r)。新的 lambda 现在可以转换为方法引用:

Optional<String> resultSet = names
        .stream()
        .filter(name::equals)
        .map(String::toUpperCase)
        .findAny();

【讨论】:

    猜你喜欢
    • 2015-10-30
    • 2018-06-07
    • 1970-01-01
    • 2020-05-05
    • 2020-11-09
    • 1970-01-01
    • 1970-01-01
    • 2015-05-23
    相关资源
    最近更新 更多