gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 23:14:35 36 4
gpt4 key购买 nike

我只是在看 Guava 的 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);

有这么多相似变体的原因是什么?

最佳答案

Varargs 和泛型不能很好地结合在一起。 Varargs 方法可能会导致带有通用参数的警告,而重载会阻止该警告,除非您希望使用 of() 向不可变列表添加超过 11 项的极少数情况。

来源中的评论说:

These go up to eleven. After that, you just get the varargs form, and whatever warnings might come along with it. :(

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

关于java - 为什么 Guava 的 ImmutableList 有那么多重载的 of() 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39155476/

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