Null, wieso besitzt die Var keinen Wert?

Hey, ich habe ein kleines Problem, wollte ein kleines zu Test zwecken Programm schreiben mit Inventar wobei man Gegenstände adden kann, es ist natürlich noch nicht fertig weshalb auch andere Methoden noch nicht Funktionsfäig sind aber das Hauptproblem liegt bei der "addItem(Gegenstand)", hierbei soll ja dann das Item an die nächst freie Stelle eingesetzt werden in den Arraylisten, das Problem ist nur der Name und vermutlich die anderen Variablen haben keinen Wert, es wird eine NullPointException ausgeworfen, aber ich habe diesem Objekt doch die bestimmten Werte gegeben? Kann mir bitte jemand meinen Fehler aufzeigen? Ich brauche auch keinen vollständigen Code, nur die Info was ich ändern müsste.

Die Gegenstand Klasse ist in den Komentaren.

LG

public class Start {

public static void main(String args) { Inventar inv = new Inventar(); Gegenstand gs1 = new Gegenstand("Stein", 50, 10); inv.addItem(gs1); inv.printMaxGewicht(); inv.printGewicht(); inv.printUsedSlots(); inv.printGegenstandInfo("Stein"); } }

import java.util.ArrayList;

public class Inventar {

private int maxGewicht = 50,
            maxSlots = 5;
private ArrayList<String> items = new ArrayList<String>();

private ArrayList<String> names;
private ArrayList<Integer> gewicht;
private ArrayList<Integer> usedSlots;

private Gegenstand[] gse;


public void addItem(Gegenstand gs) {
    int i;
    int tempG = 0;
    int tempSlots = 0;
    
    if(items.isEmpty()) {
        names.add(gs.getName());
        gewicht.add(gs.getGewicht());
        usedSlots.add(0);
    } else {
        for(i = 0; i < items.size(); i++) {
            tempG += gewicht.get(i);
            tempSlots += usedSlots.get(i);
        }
        
        if((tempG + gs.getGewicht() <= maxGewicht) && (tempSlots + 1) <= maxSlots) {
            
            names.add(gs.getName());
            gewicht.add(gs.getGewicht());
            usedSlots.add(i);
            
        }
    }
    
    
    
}

public void printGewicht() {
    int cGewicht = 0;
    for(int i = 0; i < gewicht.size(); i++) {
    cGewicht += gewicht.get(i);  
    }
    System.out.println("Das momentane Gewicht liegt bei " + cGewicht);
}

public void printMaxGewicht() {
    System.out.println("Das Maximal Gewicht liegt bei " + maxGewicht);
}

public void printUsedSlots() {
    int cUsedSlots = 0;
    for(int i = 0; i < usedSlots.size(); i++) {
    cUsedSlots += usedSlots.get(i);
    }
    System.out.println("Es werden momentan " + cUsedSlots + " von " + maxSlots + " genutzt.");
}

public void printGegenstandInfo(Gegenstand gs) {
    
    
            for(int j = 0; j < usedSlots.size(); j++) {
                System.out.println(this.gse[j].getName() + " " + this.gse[j].getGewicht() + " " + this.gse[j] );
            }
        }
        
        public void printGegenstandInfo(String gegenstand) {
            
            for(int i = 0; i < names.size(); i++) {
                if(names.get(i).equalsIgnoreCase(gegenstand)) {
                    i = names.size();
                    
                    for(int j = 0; j < usedSlots.size(); j++) {
                        System.out.println(gse[j].getName() + " " + gse[j].getGewicht() + " " + gse[j] );
                    }
                }
    }       
    
}

}

...zum Beitrag


public class Gegenstand {
	
	private String name;
	private int zustand,
				gewicht;
	
	private Gegenstand[] gs;
	
	public Gegenstand(String name, int zustand, int gewicht) {
		this.name = name;
		this.zustand = zustand;
		this.gewicht = gewicht;
	}
	
	public String getName() {
		return this.name;
	}
	
	public int getGewicht() {
		return this.gewicht;
	}

	
}
...zur Antwort

und wie sollte man nach diesen falsch angefangenem monat weiter machen? so wie bisher oder wie es eig. hätte sein sollen

...zur Antwort