O javadoc diz o seguinte:
"Retorna uma lista imutável que contém apenas o objeto especificado. A lista retornada é serializável."
Você pergunta:
Por que eu gostaria de ter um método separado para fazer isso?
Principalmente como uma conveniência ... para poupar a necessidade de escrever uma sequência de instruções para:
- crie um objeto de lista vazio
- adicione um elemento a ele e
- envolva-o com um invólucro imutável.
Também pode ser um pouco mais rápido e / ou economizar um pouco de memória, mas é improvável que essas pequenas economias sejam significativas. (Um aplicativo que cria um grande número de listas de singleton é incomum, para dizer o mínimo.)
Como a imutabilidade desempenha um papel aqui?
Faz parte da especificação do método; Veja acima.
Existem casos de uso úteis especiais para esse método, em vez de apenas ser um método de conveniência?
Claramente, existem casos de uso em que é conveniente usar o singletonListmétodo Mas não sei como você distinguiria (objetivamente) entre um caso de uso comum e um "especialmente útil" ...