Visualizzazione dei risultati da 1 a 5 su 5

Discussione: [JAVA] NullException

  1. #1

    [JAVA] NullException

    Salve, ho queste classi :

    public class Contenitore {
    Oggetto[] oggetto1;
    Oggetto[] oggetto2;

    public Contenitore() {
    oggetto1 = new Oggetto[10];
    oggetto2 = new Oggetto[100];
    }

    class Oggetto {
    private String nome;
    private String descrizione;

    private Oggetto() {
    nome = new String();
    descrizione = new String();
    nome = "";
    descrizione = "";
    }
    public void AddItem(String nome_id, String descrizione_id) {
    this.nome = nome_id;
    this.descrizione = descrizione_id;
    }
    }

    Quando all'interno di un'altra classe istanzio il mio Contenitore così :
    Contenitore mycontainer;
    mycontainer = new Contenitore();

    e poi cerco di popolare l'array....

    mycontainer.oggetto1[0].AddItem("NOME OGGETTO","DESCRIZIONE OGGETTO");

    ricevo un "NULLEXCEPTION". Dove sbaglio ?!?!?!!?

    Grazie mille (e scusate l'ignoranza).

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    60
    Mi sa che devi fare :

    for(int i=0;i<oggetto1.length;i++){
    oggetto1[i] = new Contenitore();
    }
    In modo da allocare un oggetto in ogni parte dell'array...

    Se scrivi solo oggetto1 = new Oggetto[10]; fai solo capire ad oggetto1 che deve essere di 10 elementi!!

    Poi puoi fare oggetto1[0].add.....etc etc...
    "Gli ingegneri progettano il vostro futuro...e loro lo costruiranno..."

  3. #3
    non mi è chiaro.

    al massimo devo fare

    for(int i=0;i<oggetto1.length;i++){
    oggetto1[i] = new Oggetto();
    }

    perchè altrimenti definirei oggetto come contenitore....

    o no ?

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Originariamente inviato da user_1977
    non mi è chiaro.

    al massimo devo fare

    for(int i=0;i<oggetto1.length;i++){
    oggetto1[i] = new Oggetto();
    }

    perchè altrimenti definirei oggetto come contenitore....

    o no ?
    Il problema è che prima devi dimensionare l'array e poi allocare ciascun oggetto. Nel costruttore fai
    codice:
    oggetto1 = new Oggetto[10];
    oggetto2 = new Oggetto[100];
    e va bene... poi, però, prima di richiamare i metodi devi allocare gli oggetti:
    codice:
    mycontainer.oggetto1[0] = new Oggetto();
    mycontainer.oggetto1[0].AddItem("NOME OGGETTO","DESCRIZIONE OGGETTO");
    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    ma l'attività che dici non l'ho già fatta con :

    public Contenitore() {

    oggetto1 = new Oggetto[10];
    oggetto2 = new Oggetto[100];

    }


    ?

    e comunque anche facendo come dite continuo a ricevere un java.lang.NullPointerException
    ...




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.