HTML5 – Etiqueta Header

Normalmente todas las páginas Web suelen tener una cabecera. Ésta suele encontrarse en la parte superior de la página, y en ella suele aparecer el logo o el título de la página y, a lo mejor, un subtitulo que describe el contenido de la página. En HTML4.01 para definir la cabecera se utilizaban divs y se le asignaba una clase llamada header o similar. De esta manera utilizábamos divs tanto para definir la cabecera como el contenido de la página como el pie de página.

En HTML5 se introduce la etiqueta header, la cual tiene únicamente un valor semántico.…

Continuar

Cargar Scripts en HTML5

Cuando desarrollamos una página web solemos introducir scripts (normalmente javascript) o librerías para darle ciertas funcionalidades y hacerla más dinámica. Ésto se puede conseguir incluyendo los scripts dentro de la página o importando ficheros externos. Cuando se añaden estos códigos se puede ralentizar la carga de la página o se pueden producir errores cuando se ejecuta el javascript, ésto es debido a la forma que tienen los navegadores de tratar la etiqueta script, y éste suele ser un problema importante en el desarrollo de una página web. Pero, ¿cómo tratan los navegadores la etiqueta script? Los navegadores parsean el código…

Continuar

Reflection API (VII) – Enumerados

Un enumerado es usado para definir tipos de datos que tienen cierto orden, pudiendo ser usados asignando un valor a cada uno de los elementos. Todos los enumerados extienden implícitamente de java.lang.Enum. Los enumerados contienen una o más constantes, que define una única instancia del tipo enumerado. Una definición de un enumerado es muy similar a una clase en el que puede tener campos, métodos y constructores (con algunas restricciones). Puesto que los enumerados son clases, la reflexión no tiene necesidad de definir explícitamente una clase java.lang.reflect.Enum. En el Reflection API se definen los siguientes métodos para trabajar con tipos…

Continuar

HTML5 – Etiqueta Meta

La etiqueta meta representa varios tipos de metadatos que no pueden ser expresados con las etiquetas title, base, link, style y script. Con ella podemos indicar el tipo de codificación de nuestra página y otro tipo de metadatos. Para ello utiliza los atributos name, http-equiv, charset e itemprop. El atributo charset se utiliza para especificar la codificación usada en nuestra página. Únicamente debe existir una etiqueta meta con el atributo charset en la página. En él indicaremos si nuestra página esta codificada en UTF-8, ISO o cualquier otro tipo de codificación. Este elemento debe estar dentro del los primeros 512…

Continuar

Reflection API (VI) – Tipos Genericos

Los tipos genéricos fueron implementados como una transformación en tiempo de ejecución. Los tipos genéricos no permiten conocer en tiempo de ejecución el tipo con el que se ha parametrizado, es decir, en tiempo de ejecución no podemos distinguir si un atributo es Map o es Map. Cuando utilizamos tipos genéricos el compilador genera el mismo bytecode que cuando utilizamos tipos no genéricos, insertando en tiempo de ejecución el código necesarios para realizar un cast para convertirlos en el tipo apropiado en cada acceso. Debido a que el bytecode es idéntico, la información sobre el tipo del parámetro es almacenada…

Continuar

Java 7 y Google Guava – Clase Objects

Uno de los principales propósitos de ésta clase es facilitar ciertas tareas muy comunes a la hora de crear nuestros programas, proporcionándonos una serie de métodos muy útiles a la hora de tratar con objetos. Estas clases nos facilitaran la creación de métodos como equals, hasCode o toString. De esta manera reduciremos la cantidad de sentencias if’s y la cantidad de lineas de nuestro código, mejorando así su comprensión. equals El método equal es muy utilizado para comparar dos objetos. Cuando queremos comparamos dos objetos solemos utilizar el método equals de la clase Object. Una de las formas más comunes…

Continuar

Primer Vistazo a Google Guava

Google Guava es una librearía utilizada por Google en sus proyectos internos durante bastantes años y que fue liberada durante el año 2009. Cuando hablamos de Gueva nos referimos a un conjunto de herramientas que están diseñados para mejorar el desarrollo y la productividad. Lo que pretende Guava es hacernos la vida más fácil ofreciéndonos utilidades muy utilizadas pero que no están implementadas en la JDK. Algunas de sus principales utilidades son: Utilidades Básicas: Permite un uso más sencillo de las funcionalidades de Java, haciendo más sencillo el trabajo con pre condiciones, nulls, excepciones, y la implementación de los métodos…

Continuar

Reflection API (V) – Arrays

Un array es un objeto que contiene referencias de objetos con un número fijo de componentes del mismo tipo; la longitud de un array no se puede modificar. Para crear un array es necesario conocer su longitud y el tipo de los datos que va a contener. Cada uno de sus elementos puede ser un tipo primitivo, un objeto u otro array. El manejo de arrays utilizando reflexión es algo diferente del resto de objetos. Lo primero que podemos hacer es comprobar si el objeto que estamos tratando es un array, ésto lo haremos utilizando el método Class.isArray. Cuando ya…

Continuar

Reflection API (IV) – Métodos

Usando reflexión podemos acceder a los métodos de una clase en tiempo de ejecución. Para ello podemos utilizar la clase Method. Usar la reflexión nos permite acceder a los métodos de una clase y determinar si éste ha sido heredado o pertenece a la clase que estamos utilizando, algo que es imposible saber cuando llamamos a un método sin reflexión. Obtención de los Métodos de una Clase Para obtener los métodos de una clase utilizaremos el método getMethods de la clase Class y nos devolverá un array de objetos Method.

Continuar

Reflection API(III) – Obteniendo Atributos

Mediante el uso de la reflexión podemos acceder a los atributos de una clase y modificar su valor en tiempo de ejecución. Esto lo podemos hacer mediante la clase java.lang.reflect.Field. Este clase nos permitirá acceder a toda la información de los atributos, como nombre, tipo, modificadores o anotaciones. Obtener los Atributos Para obtener todos los atributos de una clase utilizaremos el método getFields():

Continuar