Jon*_*nik 11 java variadic-functions guava
看看Guava的ImmutableList(和其他一些类),你会发现很多重载的of方便方法("返回包含给定元素的不可变列表,按顺序."),它们采用不同数量的参数:
...
public static <E> ImmutableList<E> of(E e1, E e2, E e3)
public static <E> ImmutableList<E> of(E e1, E e2, E e3, E e4)
public static <E> ImmutableList<E> of(E e1, E e2, E e3, E e4, E e5)
...
Run Code Online (Sandbox Code Playgroud)
一直到这个:
public static <E> ImmutableList<E> of(E e1,
E e2,
E e3,
E e4,
E e5,
E e6,
E e7,
E e8,
E e9,
E e10,
E e11,
E e12,
E... others)
Run Code Online (Sandbox Code Playgroud)
我的一些同事认为这很愚蠢,想知道为什么不只有一种方法:of(E... elements).他们怀疑这是一个不良导向的性能"优化",属于"你认为你比编译器更聪明"的类别,或类似的东西.
我的预感是Kevin Bourrillion等人.把这些方法放在那里是出于真正的原因.任何人都可以解释(或推测)这个原因是什么吗?
dog*_*ane 10
消息来源中的评论说:
// These go up to eleven. After that, you just get the varargs form, and
// whatever warnings might come along with it. :(
Run Code Online (Sandbox Code Playgroud)
所以,这是因为varargs方法产生带有泛型参数的警告.
| 归档时间: |
|
| 查看次数: |
1511 次 |
| 最近记录: |