El javadoc dice esto:
"Devuelve una lista inmutable que contiene solo el objeto especificado. La lista devuelta es serializable".
Usted pregunta:
¿Por qué querría tener un método separado para hacer eso?
Principalmente como una conveniencia ... para ahorrarle tener que escribir una secuencia de declaraciones para:
- crear un objeto de lista vacío
- agregarle un elemento y
- envuélvelo con una envoltura inmutable.
También puede ser un poco más rápido y / o ahorrar un poco de memoria, pero es poco probable que estos pequeños ahorros sean significativos. (Una aplicación que crea grandes cantidades de listas singleton es inusual por decir lo menos).
¿Cómo juega aquí la inmutabilidad?
Es parte de la especificación del método; véase más arriba.
¿Existen casos de uso útiles especiales para este método, en lugar de ser simplemente un método de conveniencia?
Claramente, hay casos de uso en los que es conveniente usar el singletonListmétodo. Pero no sé cómo distinguirías (objetivamente) entre un caso de uso ordinario y uno "especialmente útil" ...