Anular la construcción de un objeto en el momento de su construcción

1877 vistas

Si los parámetros pasados al constructor son incoherentes o la construcción provoca un error, no podemos crear el objeto.

Como los métodos, los constructores pueden levantar excepciones. Esta es la solución más sencilla de anular una construcción de un objeto. Técnicamente el objeto se crea en memoria (la asignación de memoria se da en el momento de la llamada al constructor) pero el llamador se ve obligado a tratar la excepción, el puntero hacia este objeto se pierde y será recuperado por el Garbage Collector.

Una solución más elegante consiste en usar un método estático que verifique los parámetros y que no haga la llamada al constructor si no son correctos.



java
  1. public class Test {
  2.         /** el constructor se declara protected para impedir su uso directo */
  3.         protected Test(int val) {
  4.         }
  5.         public static Test createTest( int val ) {
  6.                 if( val<100 ) {
  7.                         return( new Test(val) );
  8.                 } else {
  9.                         return( null);
  10.                         /** o elevamos una excepción... */
  11.                 }
  12.         }
  13. }