unklares Verhalten nach Instanzierung neuer Klasse

G

ghostwhisperer

Mitglied
Hallo! War leider ewig nicht da, geschweige denn am Programmieren.
Nun steh ich mit einem - vermutlich simplen - Problem total auf dem Schlauch. Ich finde einfach keinen Hinweis woran es liegen könnte..

Ich habe in Android eine zusätzliche Klasse eingefügt. Instanzieren scheint zu gehen. Aber schon der erste Zugriff auf Membervariablen führt
zum Absturz. Ich weiß nicht, ob dies eine Nullreferenz-Exception ist, da ich auch versuche dies vorher abzufangen.
PS: Ich hab im MainActivity-Code viel weggelassen, nicht wundern. Es geht dort nur um die fett markierten Zeilen!

Java:
public class Environment_State {

    private class Envir_Data {
        public boolean Free;
        public boolean State;
        public String Name;
        public String onText;
        public String offText;
    }
    private Envir_Data[] Hardware_State;

    public Environment_State()
    {
        Hardware_State = new Envir_Data[100];
    };

    public void ReInit()
    {
        int index=0;
        if(Hardware_State!=null) {
            for (index = 0; index < 100; index++) {
                Hardware_State[index].Free = true;
                Hardware_State[index].State = false;
                Hardware_State[index].onText = "on";
                Hardware_State[index].offText = "off";
            }

            Hardware_State[0].Name = "WLAN";
            Hardware_State[1].Name = "Ton";
            Hardware_State[2].Name = "Bluetooth";
            Hardware_State[3].Name = "Taschenlampe";
            Hardware_State[4].Name = "Offline-Modus";
        }
    }
}

Wenn ich nur die Instanz anlege geht der Android-Emulator. Sobald ich ReInit hinzufüge stürzt die App-Emulation ab.

Java:
public class MainActivity extends AppCompatActivity {

    
    [B]Environment_State Hardware_State;[/B]
    
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
       [B]Hardware_State = new Environment_State();
        Hardware_State.ReInit();[/B]
        
            }
        });
    }

Die normale Anzeige im Editor zeigt keinerlei Fehler an..

Danke sehr für jeden Hinweis! Torsten!
 
H

httpdigest

Top Contributor
Du musst in jedem der 100 Einträge im Array `Hardware_State` noch eine neue Instanz von `Envir_Data` speichern, bevor du deren Felder setzen kannst. Aktuell ist das Array `Hardware_State` zwar 100 Elemente groß, allerdings steht in jedem der 100 Elemente bisher `null` und keine Instanz von `Envir_Data`.
 
G

ghostwhisperer

Mitglied
Danke sehr! Jetzt gehts. Klassen in Arrays so zu nutzen war ich bisher von C++ her nicht gewohnt..
 
H

httpdigest

Top Contributor
Naja, in C++ entspräche die Arraydeklaration ja:
C++:
Envir_Data* Hardware_State[];
Hier brauchst du also auch explizite Instanziierung und Zuweisung an die Arrayelemente, um noch Polymorphie zu gewährleisten. Du könntest ja auch Instanzen von `Envir_Data` abgeleiteten Klassen in Java verwenden. Das geht in C++ nur, wenn du die zusätzliche Indirektion eingehst und nicht `Envir_Data HardwareState[]` schreibst (was von dieser C++-Semantik her in Java gar nicht möglich ist).
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Seltsames Verhalten im Konstruktor Java Basics - Anfänger-Themen 6
M Komisches Verhalten der Variablen Java Basics - Anfänger-Themen 6
K Klassen Eclipse Verhalten bei Klassen Java Basics - Anfänger-Themen 16
M Verhalten von LocalDateTime#getNano() Java Basics - Anfänger-Themen 1
T Objekte mit Verhalten Java Basics - Anfänger-Themen 14
D Klassen Verhalten von Klassenvererbung bei Variablen Java Basics - Anfänger-Themen 1
D Seltsames Verhalten... Java Basics - Anfänger-Themen 5
O JFileChooser Verhalten -Pfad Java Basics - Anfänger-Themen 15
S Verhalten von JTextField in einem JTabbedPane (Register) Java Basics - Anfänger-Themen 6
G Input/Output Verhalten BuffferedReader bei unvollständigen Zeichen Java Basics - Anfänger-Themen 1
D Interface für Verhalten von "=="? Java Basics - Anfänger-Themen 21
B Thread komisches Verhalten auf Mac ... Java Basics - Anfänger-Themen 6
B Komisches Verhalten von ArrayList Java Basics - Anfänger-Themen 6
S JInternalFrame in JInternalFrame - Verhalten Java Basics - Anfänger-Themen 2
F Nicht nachvollziehbares Verhalten Java Basics - Anfänger-Themen 7
K Komisches Verhalten beim erstellen einer Datei Java Basics - Anfänger-Themen 5
T unerklärliches Verhalten von Scanner Java Basics - Anfänger-Themen 2
Ham Verhalten beim Initialisieren von Arrays Java Basics - Anfänger-Themen 16
D Komisches Verhalten einer For-Schleifen Java Basics - Anfänger-Themen 7
zilti Unlogisches Verhalten Java Basics - Anfänger-Themen 4
N public void und verhalten bei return Java Basics - Anfänger-Themen 2
A Seltsames Verhalten beim ButtonClick (ActionListener() ) Java Basics - Anfänger-Themen 7
P Komisches Verhalten von BufferedReader und readLine() Java Basics - Anfänger-Themen 2
B Nach eingefügtem Code erkennt Compiler keine Instanzvar und meldet SyntaxError Java Basics - Anfänger-Themen 2
newcomerJava Nach doppelter Zahl eine Ausgabe Java Basics - Anfänger-Themen 10
M Anzahl Schleifendurchgänge nach x Sekunden anzeigen Java Basics - Anfänger-Themen 2
C Lotto 3, 4, 5, 6 Richtige nach x Ziehungen ermittelt.. Java Basics - Anfänger-Themen 7
G Primzahlen von Rekursiv nach Iterativ Java Basics - Anfänger-Themen 6
F JMenuItem Kann nicht nach einem String benannt werden... Java Basics - Anfänger-Themen 11
R JDK installieren Durcheinander nach installation von SE 14.02 Java Basics - Anfänger-Themen 6
P Sortieren von Listen nach Attributen Java Basics - Anfänger-Themen 3
B DateTimeFormatter nach LocalDateTime, wenn dd.MM.yyyy oder dd.MM.yyyy mm:hh Java Basics - Anfänger-Themen 5
1 main-Methode erweitern, Nachfrage nach wiedeholung Java Basics - Anfänger-Themen 2
S Wohin kommt das „abstract“? Vor oder nach „public“/ „private“ /... Java Basics - Anfänger-Themen 3
S Datenbank Befehl nach Login Java Basics - Anfänger-Themen 5
N Operatoren Schreibtischtest der Reihen-Suche nach Aufschluss in die Basics Java Basics - Anfänger-Themen 1
B Umstieg von C# nach Java Java Basics - Anfänger-Themen 18
Ellachen55 Wie nach häufigste Werte im Array suchen? Java Basics - Anfänger-Themen 2
M Untersuchen ob ein Graph nach entfernen einer Kante immer noch zusammenhängend ist Java Basics - Anfänger-Themen 70
N Wörter und Zahlen nach speziellen Wörtern ausgeben Java Basics - Anfänger-Themen 11
M Werte ändern sich nicht mehr nach Reset Java Basics - Anfänger-Themen 14
B Nach dem kompilieren werden Bilder nicht mehr gefunden Java Basics - Anfänger-Themen 10
X Nach einem Bruch testen ob es eine ganze Zahl ist Java Basics - Anfänger-Themen 6
B String nach erstem Leerzeichen trennen Java Basics - Anfänger-Themen 7
N Speichern von Werten in Variablen nach Schließen des Programms Java Basics - Anfänger-Themen 3
G String wird nach Einlesen aus Datei nicht erkannt Java Basics - Anfänger-Themen 3
UnknownInnocent Best Practice Algorithmus nach jedem Schritt zum Visualisieren pausieren Java Basics - Anfänger-Themen 3
O zwei Arrays nach Werten durchsuchen und zusammenfügen Java Basics - Anfänger-Themen 3
M Double Wert nach n abschneiden ohne zu runden Java Basics - Anfänger-Themen 1
C Erste Schritte Bilder nach Export anzeigen Java Basics - Anfänger-Themen 0
F Input/Output Files von A nach B kopieren Java Basics - Anfänger-Themen 11
B InputStream (PDF) nach Image (PNG / JPG) konvertieren? Java Basics - Anfänger-Themen 2
O ADT Graph nach größe Abfragen Java Basics - Anfänger-Themen 42
O compareTo nach mehreren Kriterien Java Basics - Anfänger-Themen 13
R Benutzereingaben als Array abspeichern nach Programmstart Java Basics - Anfänger-Themen 5
S Pane nach speziellen Child Objekten durchsuchen Java Basics - Anfänger-Themen 3
V Neue Ausgabe von toString nach Methodenaufruf Java Basics - Anfänger-Themen 9
L Arrayliste von hinten nach vorne ausgeben Java Basics - Anfänger-Themen 10
F Array nach Objektattribut durchsuchen Java Basics - Anfänger-Themen 6
M Rationale Zahl erkennen - Kurze Frage zum Restwert nach Division Java Basics - Anfänger-Themen 3
O String von vorne nach hinten an einem Zeichen Java Basics - Anfänger-Themen 10
Hanschyo Quicksort sortiert von groß nach klein Java Basics - Anfänger-Themen 3
S suche nach varible POSITION ... fuer das pixel-maennchen Java Basics - Anfänger-Themen 4
A Einträge aus Tupeln nach Regeln in Liste speichern Java Basics - Anfänger-Themen 8
B String nach HTML formatieren Java Basics - Anfänger-Themen 9
Zrebna Compiler-Fehler Java-Compiler wird nach 'javac' keyword-Eingabe nicht gestartet (Erste Übung) Java Basics - Anfänger-Themen 18
UnknownInnocent Klassen JPanel nach Ablauf der Spielzeit neuladen Java Basics - Anfänger-Themen 2
B Umbruch nach bestimmten Wort Java Basics - Anfänger-Themen 5
E Arrays nach best Muster füllen Java Basics - Anfänger-Themen 4
N Arbeitsspeicher nach kompilieren immer voller Java Basics - Anfänger-Themen 6
K String nach bestimmtem Muster parsen Java Basics - Anfänger-Themen 3
S Amazon Produktbeschreibung auslesen und nach Keywords suchen Java Basics - Anfänger-Themen 2
M Scanner-Eingabe nach gewissem Zeitraum überprüfen Java Basics - Anfänger-Themen 2
J variablePathPart ändern nach dem Ordner abgearbeitet worden ist Java Basics - Anfänger-Themen 1
B Wie kann ich die Buchstaben sortieren nach der Höhe der Zahlen Java Basics - Anfänger-Themen 14
J GUI wird direkt nach dem erstellen weiß übermalt Java Basics - Anfänger-Themen 3
L Programm zur Codieren nach Rotx Java Basics - Anfänger-Themen 1
S Nach dem Herüberschieben eines Arrays zwischen 2 Frames öffnet sich das Frame nicht mehr Java Basics - Anfänger-Themen 12
A ArrayList - size() nur nach bestimmtem index anzeigen lassen Java Basics - Anfänger-Themen 13
M Array nach String durchsuchen und zurückgeben Java Basics - Anfänger-Themen 16
W Wie lasse ich meine Ausgabe nach dem Lesen verschwinden ? Java Basics - Anfänger-Themen 1
F Liste nach einer Variablen sortieren Java Basics - Anfänger-Themen 6
S String trennen nach beliebigen Zeichen Java Basics - Anfänger-Themen 3
D Ich suche nach einer Möglickeit den Webseiten Inhalt per Java zu analysieren Automatisch Java Basics - Anfänger-Themen 3
B String: suche nach Wörter und in List<String> speichern Java Basics - Anfänger-Themen 3
O Array nach gleichen Zahlen prüfen und ausgeben Java Basics - Anfänger-Themen 6
K Matrixen berechnen nach Worker Master Paradigma mit Threads Java Basics - Anfänger-Themen 4
K Schlüsselworte Nach Java update findet mdb Datei nicht Java Basics - Anfänger-Themen 6
G nach 9 - stelliger Nummer suchen Java Basics - Anfänger-Themen 7
S Wie verwende ich ne aus einer Schleife nach der Schleife? Java Basics - Anfänger-Themen 9
M BufferedReader neue Zeile nach Knopfdruck Java Basics - Anfänger-Themen 9
E JAvaFX: Verschiedene Panels nach Klick auf Node des TreeView anzeigen Java Basics - Anfänger-Themen 0
D Liste nach 2 gleichen Einträgen suchen Java Basics - Anfänger-Themen 4
J Input/Output Den zweiten Output erst nach Eingabe ausgeben Java Basics - Anfänger-Themen 4
L (Integer) Liste nach aufsteigender Summe der Ziffern sortieren (mit Bedingung) Java Basics - Anfänger-Themen 8
S Dialogfeld nach 5 Sek automatisch öffnen Java Basics - Anfänger-Themen 15
F Alle Objekte einer Klasse nach Eigenschaft durchsuchen Java Basics - Anfänger-Themen 8
S OOP Button erst nach 2x klicken deaktivieren Java Basics - Anfänger-Themen 4
C Compiler-Fehler Wird eine if Bedingung nach einer for-Schleife nach jeder Iteration überprüft? Java Basics - Anfänger-Themen 1
F Koordinaten nach 360° auf 0° setzen Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Anzeige

Neue Themen


Oben