相关疑难解决方法(0)

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

我只是看着番石榴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);
Run Code Online (Sandbox Code Playgroud)

有这么多类似变化的原因是什么?

java overloading guava

38
推荐指数
2
解决办法
2004
查看次数

在Java 9中重载的方便工厂方法的重点是什么?

Java 9附带了用于创建不可变列表的便捷工厂方法.最后,列表创建非常简单:

List<String> list = List.of("foo", "bar");
Run Code Online (Sandbox Code Playgroud)

但是这个方法有12个重载版本,11个有0到10个元素,另一个有var args.

static <E> List<E>  of(E... elements)
Run Code Online (Sandbox Code Playgroud)

同样是与案件SetMap.

由于存在var args方法,有多少11种方法有什么意义呢?

我认为var-args创建一个数组,所以其他11个方法可以跳过创建一个额外的对象,在大多数情况下会有0-10个元素.还有其他原因吗?

java collections variadic-functions java-9

25
推荐指数
3
解决办法
1801
查看次数

为什么库包含Stream.of(T t)和Stream.of(T ...值)?

自从这个方法

Stream.of(T... values)
Run Code Online (Sandbox Code Playgroud)

包括单个元素的情况,为什么方法:

Stream.of(T t)
Run Code Online (Sandbox Code Playgroud)

还包括在API中?它的目的是什么?什么时候被调用?它与varargs版本有什么不同吗?

java java-8 java-stream

1
推荐指数
1
解决办法
79
查看次数