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.

<strong>Java</strong> 265<br />

Interfaces<br />

Para la reflexión, debemos tener en cuenta que las interfaces son<br />

clases abstractas decoradas con el modificado de interface. Por lo tanto<br />

todo lo que vimos para las clases aplica para las interfaces. Al igual que<br />

con las clases abstractas, vamos a obtener una excepción si tratamos<br />

de instanciar un objeto con el objeto clase de la interfaz.<br />

// obtenemos los modificadores de la interfaz<br />

int modificadores = Set.class.getModifiers();<br />

// verificamos que es pública<br />

assertTrue(Modifier.isPublic(modificadores));<br />

// verificamos que es abstracta<br />

assertTrue(Modifier.isAbstract(modificadores));<br />

// verificamos que es una interfaz<br />

assertTrue(Modifier.isInterface(modificadores));<br />

Clases anidadas<br />

Ya vimos cómo, por reflexión, podíamos acceder a la estructura de<br />

las clases, los atributos, los constructores y los métodos. También, que<br />

las interfaces se ven como clases abstractas. Ahora vamos a aprender<br />

cómo inspeccionar las clases anidadas. Para comenzar, tenemos el<br />

método getClasses, que retorna todas las clases e interfaces públicas<br />

declaradas en esta clase o en clases superiores.<br />

assertSame(<br />

Map.class.getClasses()[0], Map.Entry.class);<br />

Luego, nos encontramos con el método getDeclaredClasses, que<br />

devuelve un array con las clases e interfaces (todas, no solo las<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!