Why does Guava's ImmutableList have so many overloaded of() methods?
I was just looking at Guava's [`ImmutableList`][1] and I noticed that the `of()` method was overloaded 12 times.

It looks to me that all they needed was:

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

What's the reason for having so many similar variations?

[1]: http://guava-libraries.googlecode.com/svn-history/r12/trunk/javadoc/com/google/common/collect/ImmutableList.html

Why does Guava's ImmutableList have so many overloaded of() methods?
===

I was just looking at Guava's [`ImmutableList`][1] and I noticed that the `of()` method was overloaded 12 times.

It looks to me that all they needed was:

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

What's the reason for having so many similar variations?

[1]: http://guava-libraries.googlecode.com/svn-history/r12/trunk/javadoc/com/google/common/collect/ImmutableList.html
