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> 165<br />

…<br />

// error de compilación<br />

Double precio = catalogo.get(acondicionador);<br />

…<br />

// error de compilación<br />

catalogo.put(“body shower”, new Precio(2.35));<br />

No solamente podemos especificar tipos genéricos en la definición<br />

de un tipo, también podemos utilizar un tipo genérico específicamente<br />

para un método. Para ello declaramos el (o los) tipo genérico como<br />

modificador del método. Este es válido para el alcance del método, su<br />

código, sus parámetros y su tipo de retorno.<br />

public class Buscador {<br />

…<br />

public T[] filtrar(U base) {<br />

…<br />

}<br />

…<br />

}<br />

En el ejemplo, el tipo U es inferido por el compilador y depende del<br />

contexto de uso, si pasamos un String entonces U será String.<br />

Este tipo de uso es muy conveniente para poder forzar el mismo tipo<br />

en varios parámetros y al mismo tiempo en el tipo de retorno. Tengamos<br />

en cuenta que así hacemos que el compilador nos ayude a forzar una<br />

regla del dominio sobre los objetos sin que nosotros trabajemos.<br />

Trabajando sin genéricos<br />

Es necesario tener en cuenta que puede ser que estemos trabajando con código viejo y que use los tipos<br />

sin especificar el genérico. En estos casos el compilador nos lo hará notar mediante un alerta. Podemos<br />

informar al compilador que estamos seguros de lo que hacemos y evitar el alerta mediante la anotación<br />

@SuppressWarnings con los parámetros unchecked o rawtypes.<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!