【发布时间】:2019-02-22 18:09:39
【问题描述】:
我有一个 TreeSet 的字符串(硬编码)。
想要检查给定的参数字符串,例如。 "Person" 如果存在于 TreeSet 中则返回 true 否则返回 false。
在这里,我对 Eclipse 消息感到困惑
(Predicate<? super String> s) 与 (String s):
Stream类型中的anyMatch(Predicate)方法不适用于参数(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 s) 或 (String s) 的 Eclipse 消息感到困惑”:什么消息?
-
@azurefrog
? super String很有意义,例如它将允许通过CharSequence。 -
@ernest_k Stream
类型中的方法 anyMatch(Predicate super String>) 不适用于参数(String)如果我使用 String 作为参数而不是 Streaming 我是获取此 Eclipse 消息。
标签: java string java-8 java-stream predicate