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.