gpt4 book ai didi

java - Guava 谓词过滤各种条件,无需匿名类或额外类

转载 作者:行者123 更新时间:2023-11-29 06:32:19 25 4
gpt4 key购买 nike

使用 Java 6 和 Guava 12.0 我正在尝试根据字符串列表是否具有特定前缀来过滤它们。有没有一种方法可以在不使用匿名类或为我想要的每个不同前缀使用单独的类的情况下做到这一点?

这行得通,但它很丑陋(我删除了我公司强加的格式,甚至更丑陋)。

private String foo(String prefix, List<String> stuff) {

Collection<String> withPrefix = Collections2.filter(stuff, new Predicate<String>() {
@Override
public boolean apply(String input) {
return input.startsWith(prefix);
}
});
//...
}

当然我可以做类似下面的事情。

public class PrefixCheckForAA implements Predicate<String> {

@Override
public boolean apply(String input) {
return input.startsWith("AA");
}
}

public class PrefixCheckForZZ implements Predicate<String> {

@Override
public boolean apply(String input) {
return input.startsWith("ZZ");
}
}

有没有办法在没有匿名类或一堆看似多余的类的情况下做到这一点?

最佳答案

我在写这篇文章的时候找到了一个解决方案,我不敢相信我这么傻竟然没有想到这个......

简单的让类有一个需要String的构造函数,使用这个String作为前缀来检查。

public class PrefixChecker implements Predicate<String> {

private final String prefix;

public Prefix(String prefix) {
this.prefix = prefix;
}

@Override
public boolean apply(String input) {
return input.startsWith(prefix);
}
}

关于java - Guava 谓词过滤各种条件,无需匿名类或额外类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30538454/

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