[Java]Strana eccezione

scevafra-votailprof
package vettori;
import java.io.*;

class prova{
private int cazzate;
public int getcazzate(){
return (cazzate);
}
public void setcazzate(int cazzate){
this.cazzate=cazzate;
}
}
public class Main {


public static void main(String[] args) {
try{

prova x[]=new prova[2];

x[0].setcazzate(2);
x[1].setcazzate(9);
System.out.println(x[0].getcazzate());


}
catch(Exception e){System.out.println("eccezione");}
}}

Risposte
_Tipper
Se x è un array di un elemento, che senso ha chiamare x[1]? Per le prossime volte, anziché stampare solo un messaggio Eccezione, prova a stampare anche l'eccezione che viene gettata (usando ad esempio e.getMessage() oppure e.printStackTrace()).

apatriarca
Perché un array di dimensione 1 ha un solo elemento e non due... Quindi devi scrivere new prova[2].

scevafra-votailprof
sisi scusa è che per vedere perchè mi faceva l'eccezione ho messo new prova[1] ma anke con new prova[2] me lo fà..

scevafra-votailprof
ho provato a mettere e.printStackTrace() mi esce:
java.lang.NullPointerException
at vettori.Main.main(Main.java:43)

apatriarca
Io è da un po' che non programmo in Java... Ma se non sbaglio era necessario creare gli elementi dell'array. Devi quindi scrivere il seguente:

x[0] = new prova();
x[0].setcazzate(2);

scevafra-votailprof
ok funziona grazie mille

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.