使用Java中的流和过滤器并与varargs匹配

问题描述 投票:0回答:1

我知道.contains需要一个字符串。 Varargs可以是不止一个的String结构。像String... role可以是"user", "admin"。或者String... role可以是"user"

无论传入哪个,都将使用。

所以我有一个过滤器-我试图在其中查看那是String类型的getter是否包含在varargs中找到的值...

 String a = Arrays.toString(role);
 System.out.print(a);
 TypeOfObject roles = userProjectRoles.stream().filter(userProjectRole ->
    userProjectRole.getRole().getName().equals(a)).findFirst().orElse(null);

a有括号,它不是字符串,而是作为字符串值发送的Array。

您能帮我解决这个问题吗?

java java-stream variadic-functions
1个回答
0
投票

我想您正在尝试摆脱Arrays#toString的[和],但尚不清楚,因为没有直接答案。如果是这样,这就是方法。

值得注意的是,这是不安全的,因为角色的结果可能是多个值,而不是一个值。

String a = Arrays.toString(role).replaceAll("\\[", "").replaceAll("\\]", "");
© www.soinside.com 2019 - 2024. All rights reserved.