【问题标题】:replace lamda with method reference for contains [duplicate]用包含的方法参考替换 lambda [重复]
【发布时间】:2018-11-07 20:18:18
【问题描述】:

我实际上想将其替换为方法参考,因为声纳引发了问题,我还搜索了类似标题的答案,但我无法找到解决方案。

    String type="test2"
    List<String> validSimtSwType = Arrays.asList("test1", "test2", "test3", "test4");
    if((validSimtSwType.stream().anyMatch(name -> type.contains(name)))){
             //statements 
         }

【问题讨论】:

  • 谷歌搜索“sonar replace lamda with method reference”时第一次点击:Sonar : Replace this lambda with a method reference
  • 在您的示例中,您只是在寻找完全匹配,这可以更简单地完成,即validSimtSwType.contains(type)。如果你真的想要子字符串匹配,使用if(validSimtSwType.stream().anyMatch(Pattern.compile(type, Pattern.LITERAL) .asPredicate())) { … } 可能更有效。

标签: java java-8 java-stream


【解决方案1】:

您可以将其替换为引用contains 实例的contains 方法的方法引用:

if((validSimtSwType.stream().anyMatch(type::contains)))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-11
    • 1970-01-01
    • 2017-11-19
    • 1970-01-01
    • 1970-01-01
    • 2021-03-10
    • 1970-01-01
    相关资源
    最近更新 更多