Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

179
Vistas
is the type of System.out.println functional interface?

I do not understand one thing, should not the type of the method reference be a functional interface? So how do we pass System.out::println as a parameter to forEach?in the following code :

1-is System.out::println a Consumer?

2-if yes what is its generic type? I do not mean the type of list that is calling the method, but the generic type of the method reference that passed to the forEach.

Consumer<Integer> consumer=System.out::println;
numbers.forEach(consumer); 
over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

The type of System.out.println is not a functional interface, since System.out.println is a method, not an interface.

However, the method reference System.out::println can be used as an implementation of a functional interface. Since println accepts an argument and returns nothing, you can say that it "consumes" the argument you pass to it. Therefore it fits as an implementation of the Consumer<T> functional interface.

Note the there are multiple variants of println, which can be used to implement different functional interfaces.

For example:

  • A method reference to public void println(int x) can implement IntConsumer.

  • A method reference to public void println(double x) can implement DoubleConsumer.

  • A method reference to public void println(Object x) can implement Consumer<T>.

over 4 years ago · Santiago Trujillo Denunciar

0

  1. System.out.println is method not an interface
  2. System.out::println can be treated as an impl of interface since it takes an argument and returns nothing
over 4 years ago · Santiago Trujillo Denunciar

0

This part of code:

Consumer<Integer> consumer=System.out::println;

is equal to this lambda expression:

Consumer<Integer> consumer=i->System.out.println(i);

and above code block could be written in this way as an anonymous inner class using Consumer interface:

Consumer<Integer> consumer=new Consumer<Integer>(){
   public void accept(Integer i){
      System.out.println(i);
   }
}

So "System.out.println" itself it is not a functional interface, but when you use :: you implicitly implement the Consumer interface.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda