Ho visto oggetti creati nel codice Java senza memorizzare un riferimento all'oggetto. Ad esempio, in un plugin eclipse ho visto una shell SWT creata in questo modo:
new Shell();
Questo nuovo oggetto Shell non è memorizzato in una variabile, ma rimarrà referenziato fino a quando non verrà eliminata la finestra che [credo?] Si verifica per impostazione predefinita alla chiusura della finestra.
È una cattiva pratica creare oggetti come questo senza memorizzarne un riferimento? O la biblioteca è stata progettata male? Cosa succede se non ho bisogno di un riferimento, ma voglio solo gli "effetti collaterali" dell'oggetto? Devo comunque memorizzare un riferimento?
AGGIORNARE:
Devo ammettere che il mio esempio sopra è scarso. Mentre ho visto elementi dell'interfaccia utente creati in questo modo, creare una shell SWT come questa sarebbe probabilmente inutile perché è necessario chiamare il metodo open sull'istanza Shell. Ci sono esempi migliori forniti da aix come i seguenti dal tutorial sulla concorrenza Java :
(new HelloThread()).start();
Questa pratica è vista in molti contesti, quindi le domande rimangono. È buona pratica?
Shell.createTopLevelShell()o altro, rispetto all'utilizzo di un costruttore in questo caso. Ma funzionalmente c'è poca differenza.)
dispose()d: Regola 1: se l'hai creato, lo elimini. eclipse.org/articles/swt-design-2/swt-design-2.html