Salve, ho finito un archivio con l'incapsulamento e gli array, cose che non avevo ancora fatto fino a ora; sembrerebbe essere andato tutto bene, tranne quando vado ad eseguirlo, poiché mi dà un errore che non riesco a capire, non l'ho avevo mai incontrato.
Vi lascio il codice delle tre classi, sperando che l'indentazione sia corretta.
Seconda classe:codice:package EserciziJava.esercizio2; public class Artista { private String nome; private String cognome; private int dataDiNascita; private String biografia; public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; } public String getCognome() { return cognome; } public void setCognome(String cognome) { this.cognome = cognome; } public int getDataDiNascita() { return dataDiNascita; } public void setDataDiNascita(int dataDiNascita) { this.dataDiNascita = dataDiNascita; } public String getBiografia() { return biografia; } public void setBiografia(String biografia) { this.biografia = biografia; } }
Terza e ultima classe:codice:package EserciziJava.esercizio2; public class DatiArtista { public Artista[] creaArtisti() { Artista[] artisti = new Artista[100]; artisti[0] = new Artista(); artisti[1] = new Artista(); artisti[2] = new Artista(); artisti[3] = new Artista(); artisti[0].setNome("Antonello"); artisti[0].setCognome("Venditti"); artisti[0].setDataDiNascita(1949); artisti[0].setBiografia("Cantautore Italiano, considerato fra i piu popolari e tra i piu prolifici della cosiddetta scuola Romana,dal 1972, anno del suo debutto discografico."); artisti[1].setNome("Laura"); artisti[1].setCognome ("Pausini"); artisti[1].setDataDiNascita(1974); artisti[1].setBiografia("Laura Pausini cantautrice italiana, nasce a Faenza e vincera nel 1993 il Festival di Sanremo con la canzone la solitudine; tornerà poi nel 1994 con la canzone Strani amori, con cui si classificherà al terzo posto."); artisti[2].setNome("Domenico"); artisti[2].setCognome("Modugno"); artisti[2].setDataDiNascita(1928); artisti[2].setBiografia("Domenico Modugno nasce a poligniano a mare, e stato cantautore, chitarrista, attore, regista e politico Italiano ha pubblicato 30 album e una delle sue canzoni più conosciute e nel blu dipinto di blu, nota anche come volare"); artisti[3].setNome("Eros"); artisti[3].setCognome("Ramazzotti"); artisti[3].setDataDiNascita(1963); artisti[3].setBiografia("Eros Ramazzotti all'anagrafe Eros Luciano Valter Ramazzotti, cantautore Italiano, nato a Roma, partecipa al suo primo Sanremo nel 1984 con la canzone Terra promessa"); return artisti; } }
L'errore è questocodice:package EserciziJava.esercizio2; import java.util.Arrays; import java.util.Scanner; public class ApplicazioneArchivio { public static void main(String args []) { DatiArtista datiartista = new DatiArtista(); Artista[] artisti= datiartista.creaArtisti(); Arrays.sort(artisti, (a,b)->a.getCognome().compareTo(b.getCognome())); Scanner scanner = new Scanner( System.in); System.out.println("Benvenuto nell'archivio dove troverai tutto ciò che vuoi sapere del tuo artista preferito."); String stringa =""; System.out.println("Digita \"r\"per visualizzare gli artisti in ordine alfabetico e premi invio, "+" oppure digita il nome del tuo artista preferito per vedere tutte le informazioni, oppure scrivi \"x\" per uscire dall'archivio"); while(!(stringa =scanner.next()).equals("x")) { System.out.println("Hai digitato" + stringa.toUpperCase() +"!"); if (stringa.equals("r")) { for (Artista artista : artisti) { if (artista != null) { System.out.println(artista.getNome()); System.out.println(artista.getCognome()); System.out.println(artista.getDataDiNascita()); System.out.println(artista.getBiografia()); } } } else { boolean artistaTrovato= false; for (Artista artista : artisti) { if (artista.getCognome().equalsIgnoreCase(stringa)) { System.out.println(artista.getNome()); System.out.println(artista.getCognome()); System.out.println(artista.getDataDiNascita()); System.out.println(artista.getBiografia()); artistaTrovato = true; } } if (artistaTrovato == false) { System.out.println("Nessun risultato trovato per" + stringa); } } } System.out.println("Ciao e alla prossima!"); } }
Exception in thread "main" java.lang.NullPointerException
at EserciziJava.esercizio2.ApplicazioneArchivio.lambd a$0(ApplicazioneArchivio.java:8)
Preciso che Eclipse non lo vede come errore, ma me lo dà solo in esecuzione.
Grazie a chi vorrà aiutarmi!

Rispondi quotando
