Membro desde: 18/02/2008 16:17:53
Mensagens: 3002
Offline
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?
A resposta acima foi achada em menos de 5 minutos no google.
The prisoner falls in love with his chains. --E.W. Dijkstra
Membro desde: 17/09/2008 12:58:32
Mensagens: 1133
Offline
O problema que a Annotation sozinha não faz nada. Teria que ter uma classe (ou ficaria a cargo do compilador) ver se cada método executado possuia a anotação, verificar qual é e ainda fazer o casting de acrodo com a classe do que se está querendo fazer o casting. Provavelmente o overhead que isso traria não iria compensar.
Acredito que o to String funcionou bem pq toda hora queremos imprimir algo relativo a classe, o que não faria sentido para outras ou para tipos primitivos...