我想知道在使用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”映射键,或者在使用谓词之前/之后是否总是需要做一些过滤?

最佳答案

番石榴的贡献者在这里。

不。做一个过滤器...或者可能更有效,只是自己构建地图,而不是完全使用Maps.uniqueIndex。无论如何,这可能更简单,更短。

09-13 00:51