2016-05-31 13 views
-3

Ich arbeite derzeit an einem grundlegenden TextEditor in Java FX, aber ich habe ein bisschen Schwierigkeiten. Ich versuche, den MVC-Entwicklungsstil zu integrieren und irgendein Objekt vom Typ Dokument im Modell zu verwenden, wenn ich mit dem Editor arbeite. Wenn ich versuche, den Bereich des Inhalts zu speichern, erhalte ich eine NullPointException, wenn ich versuche, Variablen in das Dokument zu setzen wird auf Null initialisiert. Es funktioniert gut, wenn es auf ein neues Dokument gesetzt wird Null Parameter obwohl ...Warum verursachen Null-Objekte NullPointerException

Jede Information über die Begründung dafür würde wirklich geschätzt werden!

Edit:

Sorry für die Zweideutigkeit, war ich in Bezug auf die Initialisierung eines Objekts was bedeutet, dass ich versuche, dann Variablen für. Ich musste es einfach null initialisiert:

Document workingDocument = null 

Als ich das geändert:

Document workingDocument = new Document(null, null); 

Ich verstehe, was eine neue Dokumente zu schaffen, in Bezug auf Speicher tut, aber nicht, was sie einfach auf null initialisiert hat. ..

+0

Können Sie uns etwas Code zeigen? – Christoffer

+1

Wenn das Objekt null ist und Sie versuchen, eine Methode aufzurufen, was würden Sie erwarten? – alfasin

+0

NullPointerException wird ausgelöst, wenn Sie versuchen, etwas von null abzurufen. Zum Beispiel 'null.someField',' null.getSomething() 'oder' null [1] '. Es passiert, weil 'null' keine Felder, Methoden oder ein Array hat. Sie müssen diese Operationen nicht direkt auf "null" ausführen. Das Gleiche wird passieren, wenn Sie auf diese Weise referenzieren, die null hält wie 'String s = null; s.length(); '. – Pshemo

Antwort

0

Sie können nicht mit Nullwerten arbeiten. Die einzige Operation, die (von der Oberseite meines Kopfes) für NULL-Werte verfügbar sind, sind

  1. Nullchecks - if(document==null)
  2. assignements - document=null

NullPointerException wird beispielsweise ausgelöst werden, wenn Sie aufrufen werden versuchen, eine Art von Methode auf null Wert.

Sie sollten sich mit dem Konzept der OOP vertraut machen, da Nullwerte hier weit verbreitet sind. Sie können das verwandte Thema hier überprüfen What is a NullPointerException, and how do I fix it?

0

Nicht 100% sicher, was Sie meinen, aber wenn es kein Objekt gibt - Sie können keine Variablen darin setzen - da es nicht existiert. Wenn es also auf null initialisiert wird, ist es null - d. H. Nichts.

Wenn Sie ein Objekt instanziiert haben, können Sie die Mitgliedsvariablen davon festlegen - auch wenn die darin enthaltenen Variablen null sind - da das Objekt tatsächlich existiert.

Null ist Null. Selbst wenn eine Variable einen bestimmten Typ hat, wird sie auf Null zeigen, wenn sie instanziiert wird.

Verwandte Themen