23.02.2017 Views

Java

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Java</strong> 261<br />

Constructores<br />

Los constructores son, es cierta forma, parecidos a los métodos,<br />

con la particularidad que al ejecutarse se obtiene una nueva<br />

instancia. La consulta de los tipos de parámetros aceptados,<br />

como de las excepciones chequeadas que pueden arrojar, y la de<br />

los genéricos utilizados se realiza de igual manera que con los<br />

métodos. La obtención de los constructores se logra mediante los<br />

métodos getConstructor, getConstructors, getDeclaredConstructor y<br />

getDeclaredConstructors de la clase. La única diferencia es que no es<br />

necesario pasar un nombre ya que los constructores no lo tienen. Al<br />

invocar un constructor para crear una nueva instancia, obviamente<br />

no es necesario pasar como parámetro el this, como en el caso de los<br />

métodos, ya que este será la instancia recientemente creada.<br />

Al invocar un constructor, debemos tomar los mismos recaudos<br />

que cuando invocamos un método. En primer lugar será necesario que<br />

controlemos los argumentos, los tipos primitivos y también cada una<br />

de las excepciones que se podrían lanzar. de esta forma podremos<br />

estar seguros de que todo se ejecutará según lo planificamos.<br />

// conseguimos el constructor sin parámetros<br />

Constructor ctr = HashSet.class.getConstructor();<br />

// creamos una nueva instancia<br />

HashSet set = ctr.newInstance();<br />

// y la verificamos<br />

assertTrue(set.isEmpty());<br />

Reflexión y los genéricos<br />

Dado que los genéricos en <strong>Java</strong> están implementados principalmente en el compilador, no es posible, por<br />

ejemplo, crear instancias que especifiquen un genérico. No podemos, por reflexión, utilizar el constructor<br />

de ArrayList para crear una lista de Strings, ya que no son parte del mismo tipo. Simplemente podremos<br />

crear un ArrayList sin ningún tipo específico. Generalmente esto no es un problema.<br />

www.FreeLibros.me<br />

www.redusers.com

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!