我想知道在使用Guava方法时是否可以丢弃一些值。在使用Maps.uniqueIndex和Guava时拒绝值
public static Function<Locale, String> GET_LANGUAGE = new Function<Locale, String>() {
@Override
public String apply(Locale input) {
return StringUtils.isBlank(input.getLanguage()) ? "NO_LANGUAGE" : input.getLanguage();
}
};
Maps.uniqueIndex(availableLocales, GET_LANGUAGE);
我知道我可以使用多重映射,因为许多地方可以有相同的语言,但它实际上符合我的需求。
例如,我希望没有任何语言的语言环境不在输出映射中。因为我不能返回null或类似的东西,所以我将带有不相关语言的语言环境重定向到键“NO_LANGUAGE”。问题是该值仍然可以检索。
是否有某种“/ dev/null”映射键,或者我总是需要在使用谓词之前/之后做一些过滤?
yeeees我知道但我喜欢番石榴:) – 2012-07-26 10:05:48
我很高兴你这么做 - 我在一个月内开始全职工作于番石榴 - 但番石榴不能真正将Java变成一种语言,函数式编程在一般情况下是一种理智的方法。 – 2012-07-26 10:12:21
这就是为什么我要学习Scala。痛苦是匿名内部类的冗长,但一旦创建类就可以了。查看我的代码http://pastebin.com/KNe5LxAP最后,Scala提供了与Option getOrElse相同的功能。那么在Guava呢? – 2012-07-26 10:55:36