Piccolo problema !!!...

Ho utilizzato le collection per portare al termine un piccolo esercizio...

Ho fatto in modo che una persona dopo aver aggiunto delle canzoni in una specie di jukebox, nel momento in cui ne aggiunge una già presente nell'archivio, può decidere se cancellarla oppure no.

La canzone l'aggiungo col metodo costruttore, mentre per la ricerca utilizzo l'interfaccia JOptionPane...

Mi sono creato un attributo chiamato "ricerca",

String ricerca;

E per eseguire la ricerca ho scritto il seguente codice:

ricerca = JOptionPane.showInputDialog("Cerca una canzone per titolo");

Poi per controllare l'esistenza di questa canzone ho aperto un ciclo if;

if(ricerca.equals(canzone.getTitolo())){
JOptionPane.showMessageDialog(null, "La canzone esiste");

titolo è un attributo presente nella superclasse "Canzone" che tutte le altre classi (CanzoneItaliana,CanzoneStraniera;InnoNazionale) ereditano...getTitolo perchè ho incapsulato tutto...

Tuttavia però questa parte di codice funge correttamente se invece delle collection utilizzo l'array, perchè se non sbaglio per trovare il getTitotlo devo eseguire il casting di oggetti ed è proprio qui che ho alcuni problemi....

quando eseguo il casting

if(canzone instanceof Canzone)

il getTitolo me lo trova correttamente, ma segnala che il tipo canzone della classe Canzone, deve essere inizializzato, ma se lo inizializzo a null, nel momento in cui nella stringa ricerca metto il titolo uguale ad una canzone aggiunta nel jukebox, non appare il messaggio "la canzone esiste"....come posso fare?

se metto il casting all'interno del metodo del metodo

public void inserisciCanzone(Canzone canzone){



}


allora funziona tutto correttamernte, ma questo metodo l'ho già utilizzato per inserire le canzoni, cioè nella classe contenende il metodo main ho creato un oggetto e chiamato il metodo inserisciCanzone in questo modo...


oggetto.inserisciCanzone(new CanzoneItaliana("titolo","cantante",durataCanzone) ;

quindi come posso fare per far funzionare il casting oggetti?

grazie in anticipo...