El método predeterminado Java8

El método por defecto

  En Java8 añadió método por defecto se debe principalmente a los diseñadores de bibliotecas de soporte, por lo que fácilmente puede escribir una interfaz mejorada. Este enfoque es importante porque se encontrará más y más del método por defecto en la interfaz, pero relativamente pocos realmente necesita escribir el método por defecto de los programadores, pero sólo ayuda a mejorar el programa, y no para la escritura ningún programa específico.
  Dos Java8 código de ejemplo:

List<Apple> heavyApples1 =
	inventory.stream().filter((Apple a) -> a.getWeight() > 50).collect(toList());
List<Apple> heavyApples2 = 
    inventory.parallelStream().filter((Apple a) -> a.getWeight() > 50).collect(toList())	

Pero hay un problema: Antes de Java8, la lista no corriente o método parallelStream, no aplicó la interfaz Collection. Estos métodos pueden no, el código se compila. La forma más fácil es unirse al método de flujo en la interfaz Collection, y añadir a darse cuenta de la clase ArrayList.
  Pero si al hacerlo por los usuarios es una pesadilla. Hay muchas alternativas Colecciones interfaces de marco se implementan utilizando la API Collection. Sin embargo, se añade un nuevo método para la interfaz, significa que todas las clases de entidad debe proporcionar una implementación. diseñador del lenguaje no puede controlar todas las implementaciones de las colecciones existentes, así como cambiar una interfaz publicada sin interrumpir existente lograrlo?
  Java8 solución es romper el último enlace - Interfaz ahora puede incluir la clase de implementación no proporciona una manera de lograr la firma. El método de la faltante del cuerpo está dotado de una interfaz, y no por la clase de implementación.
  Esto le da a los diseñadores de la interfaz proporciona una manera de ampliar la interfaz, sin romper el código existente. Java 8 para utilizar la nueva declaración de la interfaz por defecto de la palabra clave para indicar esto.
  Por ejemplo, en Java 8, el método puede ahora ser utilizado directamente en la lista de clasificación. Es el método por defecto para la interfaz se muestra en la Lista Java8 tras la aplicación, se llama al método estático Collections.sort:

default void sort(Comparator<? super E> c){
	Collections.sort(this,c);
}

  Esto significa que cualquier lista de clases de entidad no es necesario para poner en práctica de manera explícita tipo, pero en versiones anteriores de Java, a menos que una especie de realización, de lo contrario, se producirá un error en estas clases de entidad recompilar.

Publicado 75 artículos originales · ganado elogios 7 · Vistas a 10000 +

Supongo que te gusta

Origin blog.csdn.net/zhengdong12345/article/details/102528020
Recomendado
Clasificación