Questo codice mi da un "null pointer exception". Da quanto ho capito vuol dire che c'è qualcosa che sta a null, ma non capisco proprio cosa:
codice:
public class Libreria {
private String codice, autore, titolo;
private boolean cod;
private String vet[]=new String[100];
private int i, dim=0;
/**
* Metodo costruttore.
* Inserisce il libro solo se il codice è corretto e non è già presente in libreria.
* Altrimenti imposta tutto a null.
*/
public Libreria(String codice, String autore, String titolo) {
cod=controllaCodice(codice);
if(cod==true){
this.codice=codice;
this.autore=autore;
this.titolo=titolo;
vet[dim]=codice;
dim++;
}else{
System.out.println("Codice errato o autore già presente in elenco!");
this.codice=null;
this.autore=null;
this.titolo=null;
}
}
/**
* Restituisce vero se il codice è giusto.
* Restituisce false se il codice è di lunghezza errata o è già presente.
*/
private boolean controllaCodice(String codice) {
if(codice.length()!=6){
return false; // Codice di lunghezza errata
}else{
for(i=0; i<vet.length; i++){
if(vet[i].equals(codice)){
return false; // Codice già presente in archivio
}
}
return true; // Codice corretto
}
}
@Override
public String toString() {
return "Codice: "+codice+", Autore: "+autore+", Titolo: "+titolo+"\n";
}
}
Questo è il main:
codice:
public class Main {
public static void main(String[] args) {
Libreria lib;
String str;
lib=new Libreria("AA2457", "Autore 1", "Titolo di prova");
str=lib.toString();
System.out.println(str);
lib=new Libreria("AB1265", "Autore 2", "Titolo di prova");
str=lib.toString();
System.out.println(str);
lib=new Libreria("AC1586", "Autore 3", "Titolo di prova");
str=lib.toString();
System.out.println(str);
lib=new Libreria("AD98123", "Autore 4", "Titolo di prova");
str=lib.toString();
System.out.println(str);
lib=new Libreria("AC1586", "Autore 5", "Titolo di prova");
str=lib.toString();
System.out.println(str);
}
}
Please help me