Por que o ImmutableList do Guava tem tantos métodos sobrecarregados de ()?

Eu estava apenas olhando para a GoiabaImmutableList e notei que oof() O método foi sobrecarregado 12 vezes.

Parece-me que tudo o que eles precisavam era:

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

Qual o motivo de ter tantas variações semelhantes?

questionAnswers(3)

yourAnswerToTheQuestion