Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    errore in esecuzione Exception in thread "main" java.lang.NullPointerException

    Salve ho creato un programma per il gioco della tombola ma ho un problema in questo pezzo di codice di una classe:

    codice:
    Scheda(int a, int b) {
            int numerischeda[];
            numerischeda = new int[14];
            DIM1=a;
            DIM2=b;
            int nscheda=0;
            schedina= new numero [DIM1][DIM2];
            int numerocasuale=0x0;
            for(int i=0; i<DIM1;i++)
                for(int j=0; j<DIM2;j++){
                    boolean esiste=false;
                    numerocasuale=rand.nextInt(90)+1;
                    for(int s=0; s<nscheda;s++){
                        if(numerischeda[s]==numerocasuale)
                            {esiste=true;}
                        }
                    System.out.println("ciao");
                    if(!esiste)
               -------{schedina[i][j].valore=numerocasuale;----------
                        numerischeda[nscheda]=numerocasuale;
                        nscheda++;}
                        else
                        j--;
                }
        }

    L'errore è quello tra i trattini, dove numero è un'altra classe così costituita:

    codice:
    package tombola;
    
    
    public class numero {
        
        public int valore;
        boolean uscito;
        numero(int a){
            valore=a;
            uscito=false;
        }
        
    }

    Grazie in anticipo.
    Ultima modifica di LeleFT; 03-04-2015 a 17:02 Motivo: Aggiunti i tag CODE

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da campaenrico Visualizza il messaggio
    codice:
            schedina= new numero [DIM1][DIM2];
    new numero[DIM1][DIM2] istanzia solo ed esclusivamente l'array, ovvero la sua struttura bidimensionale di DIM1xDIM2 celle. Ma NON istanzia i singoli oggetti numero. L'array inizialmente contiene tutti null.
    Spetta a te la creazione e assegnamento (agli elementi dell'array) degli oggetti numero.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Quote Originariamente inviata da andbin Visualizza il messaggio
    new numero[DIM1][DIM2] istanzia solo ed esclusivamente l'array, ovvero la sua struttura bidimensionale di DIM1xDIM2 celle. Ma NON istanzia i singoli oggetti numero. L'array inizialmente contiene tutti null.
    Spetta a te la creazione e assegnamento (agli elementi dell'array) degli oggetti numero.
    Ma come dovrei assegnare allora ad ogni cella dell'array un oggetto di tipo numero? Pensavo che con la new che avevo scritto istanziasse direttamente in ogni cella dell'array un oggetto di quel tipo. Grazie per la risposta comunque.

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da campaenrico Visualizza il messaggio
    Ma come dovrei assegnare allora ad ogni cella dell'array un oggetto di tipo numero?
    Doppio ciclo for annidato .... schedina[i][j] = new numero( ..... );
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Ok giusto si, grazie ancora per l'aiuto.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.