Java 将lamda替换为包含的方法参考

Java 将lamda替换为包含的方法参考,java,java-8,java-stream,Java,Java 8,Java Stream,实际上,我想把它替换为方法参考,因为声纳是一个问题,我也搜索了类似标题的答案,但我无法找到解决方案 String type="test2" List<String> validSimtSwType = Arrays.asList("test1", "test2", "test3", "test4"); if((validSimtSwType.stream().anyMatch(name -> type.contains(name)))){

实际上,我想把它替换为方法参考,因为声纳是一个问题,我也搜索了类似标题的答案,但我无法找到解决方案

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

您可以将其替换为引用
类型
实例的
包含
方法的方法引用:

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

您可以将其替换为引用
类型
实例的
包含
方法的方法引用:

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

谷歌搜索“sonar replace lamda with method reference”时的第一个点击:在您的示例中,您只是在寻找一个精确匹配,这可以做得更简单,即
validSimtSwType.contains(type)
。如果确实需要子字符串匹配,那么使用
If(validSimtSwType.stream().anyMatch(Pattern.compile(type,Pattern.LITERAL).asPredicate()){…}
。在谷歌搜索“sonar replace lamda with method reference”时第一次点击:在您的示例中,您只寻找精确的匹配,这可以做得更简单,即
validSimtSwType.contains(type)
。如果确实需要子字符串匹配,那么使用
If(validSimtSwType.stream().anyMatch(Pattern.compile(type,Pattern.LITERAL).asPredicate()){…}
可能会更有效。