Wie um zu überprüfen, ob das Objekt null ist in Java?
Was ist der beste Weg, um zu überprüfen, ob eine position belegt ist, oder nicht? Ich glaube nicht, ich sollte mit "==null"...
class Cell {
int column;
int row;
char letter;
public Cell(int column, int row, char letter) {
super();
this.column = column;
this.row = row;
this.letter = letter;
}
public boolean isEmpty() {
if (this==null) return true;
else return false;
}
}
this
können nie werden null
weil es verweist auf das aktuelle Objekt. Benötigen Sie eine andere Art und Weise zu zeigen, dass die Cell
leer ist wie eine andere variable (boolean, vielleicht?)Derek Greer, in lostechies.com/derekgreer/tag/tdd, hat eine lange Reihe von Beispielen auf das schreiben ein tic-tac-toe-Spiel mit TDD, wo er steht vor ähnlichen Problemen, wie das Rendern der Zellen. Es ist jedoch in C#. Ich empfehle es trotzdem.
InformationsquelleAutor ampc | 2013-04-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gehe ich davon aus, dass die
char
ist der Inhalt IhrerCell
- und Sie möchten überprüfen, ob Ihre Inhaltenull
.Zunächst
this
kann nicht immernull
.this
ist das aktuelle Objekt, und daher immer vorhanden ist.Sind Sie mit einem
char
- dies ist ein primitive ist auch nichtnull
. Ändern der Objekt-wrapper und überprüfen Sie, dass fürnull
Ein weiterer Hinweis ist, dass der superclass-Konstruktor wird immer dann aufgerufen wird, standardmäßig, es gibt keine Grund zu nennen
super()
.Aus dieser den Standard-Wert
char
wenn\u0000
, die nicht druckbare Zeichen, die Sie könnte testen. Nicht übermäßig robust aber.Ich vermute, Sie wollen nicht zu ändern, das
char
zuCharacter
weil Sie verwenden primitivechar
s schon in den anderen code? Sie sollten in der Lage sein, um transparent schalten, umCharacter
imCell
Klasse durch autoboxing. So bauen Sie eine neueCell
(wieCell c = new Cell(2, 3, 'x');
) noch funktioniert, wennCell
verwendetCharacter
stattchar
, und Sie können dienull
überprüfen. Andernfalls müssen Sie einige default-Wert fürletter
zu überprüfen, wahrscheinlich\u0000
als bmorris591 vorgeschlagen.InformationsquelleAutor Boris the Spider
Wenn die Instanz von einem Objekt existiert, dann kann es nicht
null
! (wie der Kommentar von Code-Guru sagt). Jedoch, was Sie zu tun versuchen ist zu prüfen, ob dieletter
- Attribut des Objekts ist (oder nicht ist) null.Nur als Anregung, anstatt
char
als der Typ, verwendenCharacter
, der die Klasse kapselt diechar
geben.Ihre Klasse dann kann wie folgt Aussehen:
InformationsquelleAutor Barranka
this
nichtnull
weilthis
ist die Instanz einerCell
.Ohne änderung
char
zuCharacter
:InformationsquelleAutor ACV