Java - Get/set-Methoden, Empfang und Rückgabe "null"

Ich bin ein Anfänger in Java. Ich versuche, für die Ausbildung Zweck, zu bauen mich ein Schach-Spiel-Anwendung. Innerhalb meiner Klasse, welche verwendet werden, um instantiieren alle 64 Fälle von meinem board, ich Schreibe get/set-Methoden zu finden, wenn es ein Stück Insassen in den Instanzen der Fall ist.

Habe ich gelesen, dass die Rückgabe "null" ist eine schlechte Praxis, damit ich eine exception werfen, statt zu erklären, dass der Fall frei ist. Aber, ich Frage mich, wie die Insassen der Zeiger auf "null", kann ich drücken Sie einfach "null" als parameter auf, wenn ich diese Methode aufrufen?

Könnte auch unter/Rückgabe "null" sein, eine akzeptable/gute Praxis?

public Piece getOccupant(){
    if (this.occupant == null)
        throw new IllegalArgumentException(this.occupant + " is Empty");
    return this.occupant;
}
public void setOccupant(Piece newOccupant){
    this.occupant = newOccupant;
}

Dank!

[Update]

Danke an alle für Eure Kommentare, Anregungen, Ideen, Korrekturen und Empfehlungen. Hier ist die aktualisierte version von meinem code für das Teil, und ich fühle mich zufrieden, denn es erfüllt seinen Zweck (erhöhen mein Verständnis thru Praxis).

/*
 * Modifiers of Occupant
 */
/**
 * Used to find if a Piece is located in this Cell
 * @return a Piece reference to the occupant.  Will send a 
 * null pointer if cell is empty
 */
public Piece getOccupant(){
    return this.occupant;
}
/**
 * Used to set a new occupant in the Cell.
 * @param newOccupant is a reference to a Piece instance, 
 * and should be set to null if the cell is emptied, or using
 * the method clear().
 */
public void setOccupant(Piece newOccupant){
    this.occupant = newOccupant;
}
/**
 * Used to verify if a Cell is empty of any occupant
 * @return true if cell is empty.
 */
public boolean isEmpty(){
    if(this.occupant == null)
        return true;
    return false;
}
/**
 * Free the cell of any occupant, if any were
 */
public void clear(){
    this.occupant = null;
}
  • Vielleicht bin ich falsch, aber ich sehe nicht ein, warum es schlecht wäre null zurück, in dieser situation, wenn die Zelle keine Insassen. 1+ für Ihren Wunsch, um besseren code zu schreiben!
  • Vielleicht seine nur mich, aber das werfen einer IllegalArgumentException in eine Methode, die keine Argumente sind nicht geeignet.
  • Bitte nicht über eine API, die null zurückgeben kann. Dies bedeutet, dass Sie brauchen, um zu überprüfen, jedes mal, wenn Sie es verwenden.
InformationsquelleAutor AntoineG | 2011-06-04
Schreibe einen Kommentar