Basicamente quando alguém quer converter um dado para String, a pessoa sobreescreve o método toString, e este é chamado automaticamente quando requerido.
Estava pensando se seria possível ter uma autoconversão em mais tipos/objetos de Java que não fossem somente String.
Obrigar que as pessoas usem um nome de método obrigatório certamente não seria possível, então não dá para aplicar a mesma convenção do toString.
Mas que tal se anotássemos os métodos das classes para que estas fossem as responsáveis pelas conversões. Obviamente o tipo de retorno delas deverá ser o mesmo do anotado, ou um subtipo dela. Também só poderia haver uma anotação dessas por tipo, para não evitar conflitos.
Conversões implícitas ajudariam a diminuir a quantidade de código escrito.
O que acham de conversões implícitas versus explícitas?