6.6 Referenciando construtores

Uso de method reference com construtores: Assim como métodos estáticos, podemos referenciar construtores usando new: Usuario rodrigo = Usuario::new; // ERRO! Esse código não compila porque Usuario não é uma interface funcional. Utilizando Supplier para construtor sem argumentos: A interface funcional Supplier é usada para criar objetos sem argumentos: Supplier criadorDeUsuarios = Usuario::new; Usuario novo = criadorDeUsuarios.get(); O método get() é chamado para instanciar um novo objeto. Criando instâncias com argumento usando Function: Para construtores que recebem um argumento, usamos Function: Function criadorDeUsuarios = Usuario::new; Usuario rodrigo = criadorDeUsuarios.apply("Rodrigo Turini"); Usuario paulo = criadorDeUsuarios.apply("Paulo Silveira"); O método apply() recebe o argumento e cria o objeto. Criando instâncias com dois argumentos usando BiFunction: Para construtores com dois parâmetros, usamos BiFunction: BiFunction criadorDeUsuarios = Usuario::new; Usuario rodrigo = criadorDeUsuarios.apply("Rodrigo Turini", 50); Usuario paulo = criadorDeUsuarios.apply("Paulo Silveira", 300); apply(arg1, arg2) é usado para passar os dois argumentos. Construtores com mais de dois argumentos: O Java não fornece interfaces funcionais para mais de dois parâmetros. Se necessário, podemos criar uma interface funcional personalizada, como TriFunction. Conclusão: Method references podem ser usados para instanciar objetos via construtores. Interfaces como Supplier, Function e BiFunction ajudam a referenciar construtores com diferentes quantidades de argumentos. Para mais de dois parâmetros, é necessário criar uma interface funcional personalizada. Referenciandooconstrutorde um Array consigo usar constructor reference com um array, mas neste casoasintaxevaim u d a r umpouco. Bastaadicionaroscolchetesdoarray antes do delimitador ::, porexemplo: int[]::new.

Mar 15, 2025 - 05:21
 0
6.6 Referenciando construtores

Uso de method reference com construtores:

Assim como métodos estáticos, podemos referenciar construtores usando new:

Usuario rodrigo = Usuario::new; // ERRO!

Esse código não compila porque Usuario não é uma interface funcional.

Utilizando Supplier para construtor sem argumentos:

A interface funcional Supplier é usada para criar objetos sem argumentos:

Supplier criadorDeUsuarios = Usuario::new;
Usuario novo = criadorDeUsuarios.get();

O método get() é chamado para instanciar um novo objeto.

Criando instâncias com argumento usando Function:

Para construtores que recebem um argumento, usamos Function:

Function criadorDeUsuarios = Usuario::new;
Usuario rodrigo = criadorDeUsuarios.apply("Rodrigo Turini");
Usuario paulo = criadorDeUsuarios.apply("Paulo Silveira");

O método apply() recebe o argumento e cria o objeto.

Criando instâncias com dois argumentos usando BiFunction:
Para construtores com dois parâmetros, usamos BiFunction:

BiFunction criadorDeUsuarios = Usuario::new;
Usuario rodrigo = criadorDeUsuarios.apply("Rodrigo Turini", 50);
Usuario paulo = criadorDeUsuarios.apply("Paulo Silveira", 300);

apply(arg1, arg2) é usado para passar os dois argumentos.

Construtores com mais de dois argumentos:

O Java não fornece interfaces funcionais para mais de dois parâmetros.
Se necessário, podemos criar uma interface funcional personalizada, como TriFunction.

Conclusão:
Method references podem ser usados para instanciar objetos via construtores.
Interfaces como Supplier, Function e BiFunction ajudam a referenciar construtores com diferentes quantidades de argumentos.
Para mais de dois parâmetros, é necessário criar uma interface funcional personalizada.

Referenciandooconstrutorde um Array

consigo usar constructor reference com um array, mas neste
casoasintaxevaim u d a r umpouco. Bastaadicionaroscolchetesdoarray
antes do delimitador ::, porexemplo: int[]::new.