23.02.2017 Views

Java

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

270<br />

Apéndice 1. Reflexión<br />

Además, Array ofrece métodos para leer y escribir valores en los<br />

array, así como también obtener su la longitud. Los métodos para<br />

acceder a los elementos están discriminados por tipos primitivos y<br />

luego por uno general para objetos.<br />

assertEquals(Array.getLength(new int [] {4, 3}), 2);<br />

assertEquals(<br />

Array.getLong(new long [] { 2L }, 1),<br />

2<br />

);<br />

Enumeraciones<br />

Como vimos en el capítulo dedicado a ellas, las enumeraciones son<br />

clases que definen ciertos atributos estáticos donde cada referencia es<br />

una instancia de la misma clase (o una subclase anónima). Por lo tanto<br />

podemos utilizar las mismas herramientas que vimos para inspeccionar<br />

y manipular clases y atributos mediante reflexión. Además existe cierto<br />

protocolo específico para cuando se da el caso de las enumeraciones.<br />

Empezaremos viendo cómo determinamos que una clase es<br />

en realidad una enumeración. Para ello usamos el método isEnum<br />

perteneciente a Class, de la siguiente forma:<br />

// declaramos una enumeración<br />

enum TEST {<br />

Velocidad de la reflexión<br />

Tenemos que ser cuidadosos a la hora de usar estas herramientas para inspeccionar la estructura de los<br />

objetos. Ejecutar un método por reflexión es mucho más lento que hacerlo directamente, así como también<br />

lo es el acceso a los atributos. Entonces no debemos abusar, ya que si lo hacemos, la velocidad de nuestra<br />

aplicación caerá rápidamente. Si es necesario podemos utilizar caching para ganar algo de velocidad.<br />

www.redusers.com<br />

www.FreeLibros.me

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

Saved successfully!

Ooh no, something went wrong!