gpt4 book ai didi

java - (Predicate s) 或 (String s)

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:38:05 31 4
gpt4 key购买 nike

我有一个 TreeSet字符串(硬编码)。想要检查给定的参数字符串,例如。 “人”如果存在于 TreeSet 中则返回 true否则返回 false .

在这里,我对关于 Eclipse 的消息感到困惑 (Predicate<? super String> s)对比(String s) :

The method anyMatch(Predicate) in the type Stream is not applicable for the arguments (String)

请指导。

import java.util.Set;
import java.util.TreeSet;
import java.util.function.Predicate;

public class SystemLabelValidator {

public static boolean ValidateSystemLabel( String s) {

String j = s;

boolean b = false;

Set <String> SystemLabels = new TreeSet<String>();
// Unique Strings
SystemLabels.add("Person");
SystemLabels.add("Player");
SystemLabels.add("Hospital");
SystemLabels.add("Nurse");
SystemLabels.add("Room");

System.out.println("\n==> Loop here.");
for (String temp : SystemLabels) {
System.out.println(temp);

if(SystemLabels.stream().anyMatch(j)) {
System.out.println("I need to return Boolean");
}
return b;
}
return b;
}
}

最佳答案

这里不需要使用Predicate。为了检查 String 是否存在于您的 TreeSet 中,只需使用:

return systemLabels.contains("Person");

如果你仍然坚持使用 anyMatch 那么你可以这样做:

public static boolean validateSystemLabel(String s) {
return systemLabels.stream().anyMatch(i -> i.equals(s));
}

请记住,谓词 表达式需要评估为一个 boolean 值,但在代码中,您传入的是一个字符串,因此编译错误。

关于java - (Predicate<? super String> s) 或 (String s),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54832809/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com