Supponiamo che stia estendendo una classe di selezione di file grafici ( JFileChooser
).
Questa classe ha metodi che visualizzano la finestra di dialogo selettore file e restituiscono una firma di stato sotto forma di int
: APPROVE_OPTION
se l'utente seleziona un file e fa clic su Apri / Salva , CANCEL_OPTION
se l'utente colpisce Annulla e ERROR_OPTION
se qualcosa va storto. Questi metodi sono chiamati showDialog()
.
Trovo che questo sia macchinoso, quindi decido di creare un altro metodo che restituisca un oggetto File
: nel caso di APPROVE_OPTION
, restituisce il file selezionato dall'utente; altrimenti restituisce null
. È qui che mi imbatto in un problema: sarebbe corretto per me mantenere il nome di showDialog()
, anche se i metodi con quel nome - e un tipo diverso di ritorno - esistono già? Per finire, il mio metodo accetta un parametro aggiuntivo: un File
che denota in quale directory deve essere avviato il selettore di file.
La mia domanda: è corretto chiamare un metodo con lo stesso nome di un metodo superclasse se restituiscono tipi diversi? O sarebbe confusionario per gli utenti API? (Se sì, quale altro nome potrei usare?)
In alternativa, dovrei mantenere il nome e cambiare il tipo di ritorno in modo che corrisponda a quello degli altri metodi?
public int showDialog(Component parent, String approveButtonText) // Superclass method
public File showDialog(Component parent, File location) // My method