Soy un principiante en Java. Intento, con fines formativos, construirme una aplicación de juego de ajedrez. Dentro de mi clase Case, que será utilizada para instanciar los 64 casos de mi placa, escribo get/set methods para encontrar si hay un ocupante Piece en las instancias del caso.Java - Obtener/configurar métodos que reciben y devuelven "nulo"
He leído que devolver "nulo" es una mala práctica, por lo que arrojo una excepción para indicar que el caso es gratuito. Pero, me pregunto cómo configurar el puntero del ocupante a "nulo"; ¿Puedo simplemente presionar "nulo" como parámetro cuando llamaré a este método?
Además, ¿podría tomar/devolver "nulo" una buena/aceptable práctica?
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;
}
Gracias!
[Actualización]
Gracias a todas sus por sus comentarios, ideas, correcciones y recomendaciones. Aquí está la versión actualizada de mi código para esta parte, y me siento satisfecho con ella, ya que cumplió su propósito (aumentar mi comprensión a través de la práctica).
/*
* 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;
}
Tal vez me equivoque, pero no veo por qué sería malo para volver nulo en esta situación si la celda no tiene ocupantes. 1+ para su deseo de escribir un mejor código! –
Quizás sea solo yo, pero arrojar una IllegalArgumentException en un método que no tiene ningún argumento no es apropiado. – gouki
No tiene una API que puede devolver nulo. Esto significa que deberá verificarlo cada vez que lo use. –