La comprensión de Java 8 Expresiones Lambda

user3216798:

Estaba leyendo este artículo en Java 8 y tenía las siguientes preguntas / comentarios Le agradecería alguna información / respuesta.

1) ¿Es la @FunctionalInterfacedeclaración necesaria para el siguiente código? O podría este mismo código se ejecutará sin ella y es para fines de documentación? No está claro de si es necesario desde el artículo.

@FunctionalInterface
private interface DTOSender {
   void send(String accountId, DTO dto);
}

void sendDTO(BisnessModel object, DTOSender dtoSender) {
   //some logic for sending...
   ...
   dtoSender.send(id, dto);
   ...
}

2) En general, puede ser una función pasa como argumento a otra función en Java 8? Mi entendimiento es sólo tipos de datos se pueden pasar como argumentos de funciones, así que supongo que no es posible en función no es un tipo de datos.

3) ¿Es necesario hacer nada especial para llevar a cabo # 2 arriba o puede que acabo de escribir mis definiciones de los métodos 2 y sólo tiene que pasar por un método como un parámetro para el otro método?

4) ¿Pueden los objetos pueden pasar como argumentos a otra función en Java 8? ¿Es necesario hacer nada especial para lograr esto o puedo escribir mis definiciones del objeto y método y simplemente pasar el objeto como un parámetro para el método?

Andrónico:
  1. @Functional Interface solo es un pequeño, de modo que usted no pone más métodos en su interfaz.

  2. Puede. Muchos métodos en Streamfunciones toman como parámetro: Stream.of(1, 2, 3).forEach(System.out::println).

  3. Lambda es una función ejemplo : Function<Integer, Integer> f = a -> a + 1. Edición: se puede pasar una función por su nombre usando el método de referencia (véase 2., printlnes un método regular).

  4. No entiendo totalmente la cuestión. Si el método consume ningún argumento, que no es primitiva, se necesita un objeto (todo en java excepción de primitivas es un objeto).

Supongo que te gusta

Origin http://10.200.1.11:23101/article/api/json?id=410087&siteId=1
Recomendado
Clasificación