Metodi Java void che restituiscono implicitamente questo

20

ci sono un paio di discussioni su SO sui metodi setter che restituiscono "questo" tipo. E sembra che java 7 abbia avuto la proposta di metodi void per restituirlo. Ma questa proposta non poteva farcela con le funzionalità di java 7. Non sono riuscito a trovare se questa proposta è stata spostata su Java 8 o futuro o è stata completamente scartata. È?

Rif link - link

    
posta Tarun 01.12.2011 - 14:21
fonte

2 risposte

11

Non riesco a trovare alcuna fonte di questo, ma credo che questa funzionalità sia stata completamente abbandonata. Ci sono numerose ragioni per cui posso pensare:

  • performance - ogni metodo void ora ha un opcode di ritorno aggiuntivo e ogni posto dove viene chiamato questo metodo ha bisogno di implicito pop a meno che non usi effettivamente il concatenamento di metodi

  • compatibilità con le versioni precedenti - la compilazione su questa funzione rende improvvisamente il codice incompatibile a ritroso perché il contratto di ogni metodo void è stato modificato

Naturalmente questo può anche essere implementato dal compilatore ( metodo di chiamata su void ? Probabilmente intendevi this , lasciami aggiungere implicitamente ), non so quali sono gli svantaggi di questo approccio.

    
risposta data 01.12.2011 - 14:48
fonte
3

Non credo che questo sia mai stato formalmente proposto per l'incarnazione del Progetto COIN nel 2009. Questa pagina propone di elencare tutte le proposte e non riesco a vederne una corrispondente.

Se non fosse stato proposto, non sarebbe stato preso in considerazione.

    
risposta data 01.12.2011 - 15:15
fonte

Leggi altre domande sui tag