Estás en:

Blog: Java

Java Reflection (parte 3)

17 Xuñ 2011 por Santi

Comentarios en Java Reflection (parte 3): 11

Java

Nas anteriores entradas Java Reflection parte 1 e Java Reflection parte 2) comentamos conceptos básicos sobre como obter en tempo de execución os tipos, atributos e métodos dun obxecto, e as manipulacións básicas sobre os mesmos (acceder e cambiar os seus valores). Tamén explicamos algunhas manipulacións máis complexas (obtención de instancias a partir de construtores específicos, acceder e modificar elementos privados, ...).

Nesta terceira parte dedicarémonos a explicar como traballar con reflexión con dous elementos un pouco máis avanzados de Java: arrays e tipos xenéricos (Java Generics). Aínda que quizais poidan ser considerados elementos básicos da linguaxe de programación (os arrays deben ser o primeiro tipo complexo que se ensina nas clases de programación), a manipulación vía Java Reflection dos mesmos é un pouco máis complexa que os elementos vistos ata o momento, aínda que descubriremos que unha vez aprendidos os conceptos básicos tal complexidade é só aparente.

Java Reflection (parte 2)

19 Mai 2011 por Santi

Comentarios en Java Reflection (parte 2): 9

Java

Na nosa anterior entrada, Java Reflection (parte 1), comentamos como obter o tipo, construtores e instancias dunha clase cando non coñeciamos en tempo de compilación os detalles específicos da mesma.

Neste artigo, comentaremos como obter e manipular os atributos e métodos dunha clase.

Java Reflection (parte 1)

26 Abr 2011 por Santi

Comentarios en Java Reflection (parte 1): 17

Java

Unha das funcionalidades máis potentes e pouco coñecidas de Java é o seu soporte para reflexión. Mediante a Java Reflection API o programador pode inspeccionar e manipular clases e interfaces (así como os seus métodos e campos) en tempo de execución, sen coñecer a priori (en tempo de compilación) os tipos e/ou nomes das clases específicas cas que está traballando.

Quizais poida parecernos nunha primeira impresión unha funcionalidade con usos limitados. Pero debemos saber que, por exemplo, moitos frameworks de alto nivel como Hibernate, Spring ou Tapestry fan un uso extensivo desta API para facilitarlle a vida ó programador ó permitirlle que use simples clases POJO para traballar con elas. Outros frameworks menos potentes (ou versións antigas destes mesmos frameworks), obrigaban ó programador a que as súas clases implementaran certos interfaces ou pertencesen a complicadas xerarquías de clases, o cal limitaba a flexibilidade do programador e complicaba a comprensión do código.

Introdución a Apache Tapestry

29 Nov 2010 por Santi

Comentarios en Introdución a Apache Tapestry: 3

Apache Tapestry

Apache Tapestry é un framework Java de código aberto para a implementación de aplicacións web mediante a arquitectura Modelo-Vista-Controlador. Iniciou as súas andainas alá por 1999 da man do seu creador, Howard Lewis Ship para posteriormente ser adoptado como proxecto pola Fundación Apache. Actualmente atópase na versión 5.1, baixo licenza Apache Software Licence 2.0.

Tapestry forma parte dunha "nova xeración" de frameworks web (como por exemplo JavaServer Faces ou Apache Wicket) que intentan achegar un novo enfoque ao desenvolvemento de aplicacións web Java (baseados en compoñentes e orientados a eventos) fronte ó clásico e archicoñecido Apache Struts (baseado en accións).

Java: Double Brace Initialization

19 Nov 2010 por Santi

Comentarios en Java: Double Brace Initialization: 1

Java

Cando un se adica a buscar en Google a resposta a algunha dúbida de programación ás veces atopa a solución ós seus problemas, ás veces perde o tempo e outras veces perde o tempo pero descubre algo interesante.

Cando buscas dúbidas sobre Java en Stackoverflow soe pasar o mesmo. Unha das cousas interesantes que descubrín en unha de esas ocasións foi un fío sobre as características ocultas de Java, onde os participantes falan sobre certas características de Java que non son moi ampliamente coñecidas. Este tipo de fíos son moi populares en Stackoverflow, existe un para cada unha das linguaxes de programación máis populares, moi recomendable a súa lectura.

Unha das características que máis chamou a miña atención (e polo visto de moitos dos participantes) das que se comentan en ese fío é a chamada "Double Brace Initialization" (Inicialización con Dobre Chave). Baixo este nome escóndese unha nova sintaxis para a inicialización de coleccións (listas, mapas, conxuntos, ...).