为什么Guava的ImmutableList有这么多重载的of()方法?

2023-12-11

我只是在看番石榴ImmutableList我注意到of()方法被重载了12次。

在我看来,他们所需要的只是:

static <E> ImmutableList<E> of();
static <E> ImmutableList<E> of(E element); // not even necessary
static <E> ImmutableList<E> of(E... elements);

到底是什么原因导致了这么多类似的变化呢?


可变参数和泛型不能很好地协同工作。可变参数方法可能会导致带有泛型参数的警告,并且重载可以防止该警告,除非在极少数情况下,您想要使用以下命令将超过 11 个项目添加到不可变列表中of().

来源中的评论说:

这些最多可达十一个。之后,您将获得 varargs 形式,以及随之而来的任何警告。 :(

请注意,Java 7@SafeVarargs专门添加注释是为了消除此类事情的需要。单个of(E...)方法注释为@SafeVarargs可以使用并且不会对通用参数发出警告。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么Guava的ImmutableList有这么多重载的of()方法? 的相关文章

随机推荐