Java - методы Get / set, получающие и возвращающие «null»

Я новичок в Java. Я пытаюсь в тренировочных целях создать себе приложение для игры в шахматы. В моем классе Case, который будет использоваться для создания экземпляров всех 64 случаев моей платы, я пишу методы get / set, чтобы определить, есть ли в экземплярах этого случая объект Piece.

Я прочитал, что возвращаемое значение "null" равно плохая практика, поэтому вместо этого я генерирую исключение, чтобы показать, что кейс свободен. Но мне интересно, как установить указатель агента на «ноль»; Могу ли я просто указать «null» в качестве параметра при вызове этого метода?

Кроме того, может ли принятие / возврат «null» быть приемлемой / хорошей практикой?

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;
}

Спасибо!

[Обновление]

Спасибо всем за комментарии, идеи, исправления и рекомендации. Вот обновленная версия моего кода для этой части, и я доволен ею, поскольку она выполнила свою задачу (улучшить мое понимание на практике).

/*
 * 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;
}
8
задан AntoineG 4 June 2011 в 17:13
поделиться