Java 8 default methods y extensibilidad

Java 8 Default methods es una de las nuevas características de Java que nos permite definir métodos y que estos pertenezcan a las clases que queramos. El concepto se parece mucho al concepto de mixins de otros lenguajes de programación.

Java 8 default methods

Vamos a construir un ejemplo que se encargue de diseñar un método que nos imprima las diferentes propiedades que una clase tiene. Este método se podrá  aplicar a cualquier clase. Para diseñar un default method necesitamos crear una interface.


package com.arquitecturajava;

import java.lang.reflect.Field;

public interface InformacionObjeto {

default public void imprimirPropiedadesObjeto() {

Field[] campos =this.getClass().getDeclaredFields();
for(int i=0;i<campos.length;i++) {

System.out.println(campos[i].getName());
}

}
}

Esta interface puede contener métodos normales y default methods . En este caso sólo contendrá un default method. Este método se apoya en el API de reflection para acceder a todas las propiedades que un objeto tiene e imprimirlas por la consola. El siguiente paso será construir una clase que implemente este interface.


package com.arquitecturajava;

public class Persona implements InformacionObjeto {

 private String nombre;
 public String getNombre() {
 return nombre;
 }
 public void setNombre(String nombre) {
 this.nombre = nombre;
 }
 public String getEdad() {
 return edad;
 }
 public void setEdad(String edad) {
 this.edad = edad;
 }
 private String edad;

}

Automaticamente se añadirá a la clase el default method y se podrá utilizar como si se tratara de un método normal.


package com.arquitecturajava;

public class Principal {

public static void main (String args[]) {

Persona p= new Persona();
p.imprimirPropiedadesObjeto();
}
}

El resultado de este código imprimirá por consola las propiedades de la clase. Los default métodos son muy útiles y añaden extensibilidad al sistema.

Otros artículos relacionados