Referências de construtor

A referência a um construtor usa a sintaxe: nomeclasse::new.
Pode ser atribuída a uma interface funcional que tenha um método compatível com o construtor.

Exemplo com Construtor Parametrizado

Se a interface funcional tem um método com um parâmetro…


This content originally appeared on DEV Community and was authored by Java para Iniciantes (Oracle)

  • A referência a um construtor usa a sintaxe: nomeclasse::new.

  • Pode ser atribuída a uma interface funcional que tenha um método compatível com o construtor.

Exemplo com Construtor Parametrizado

  • Se a interface funcional tem um método com um parâmetro, a referência será associada ao construtor com esse parâmetro.

MyFunc myClassCons = MyClass::new;
MyClass mc = myClassCons.func("Testing");

  • Aqui, MyClass(String s) é o construtor referenciado.

Exemplo com Construtor Padrão

  • Para referenciar o construtor sem parâmetros, é necessário usar uma interface funcional cujo método também não tenha parâmetros.

MyFunc2 myClassCons = MyClass::new;
MyClass mc = myClassCons.func();

Uso com Classes Genéricas

  • Para classes genéricas, pode-se especificar o tipo no momento da criação da referência.

MyGenClass<Integer>::new;

  • Graças à inferência de tipos, a especificação nem sempre é obrigatória.

Inferência de Tipos

  • A referência ao construtor seleciona automaticamente o que mais se adapta ao método da interface funcional.

// Demonstra uma referência de constructor.
// MyFunc é uma interface funcional cujo método retorna
// uma referência MyClass.
interface MyFunc {
MyClass func(String s);
}
class MyClass {
private String str;
// Este construtor recebe um argumento.
MyClass(String s) { str = s; }
// Este é o construtor padrão.
MyClass() { str = ""; }
// ...
String getStr() { return str; }
}
class ConstructorRefDemo {
public static void main(String args[])
{
// Cria uma referência ao construtor de MyClass.
// Já que o método func() de MyFunc recebe um argumento,
// new referencia o construtor parametrizado de MyClass
// e não o construtor padrão.
MyFunc myClassCons = MyClass::new; Uma referência de construtor
// Cria uma instância de MyClass usando essa referência de construtor.
MyClass mc = myClassCons.func("Testing");
// Usa a instância de MyClass recém criada.
System.out.println("str in mc is " + mc.getStr( ));
}
}


This content originally appeared on DEV Community and was authored by Java para Iniciantes (Oracle)


Print Share Comment Cite Upload Translate Updates
APA

Java para Iniciantes (Oracle) | Sciencx (2025-01-13T23:26:07+00:00) Referências de construtor. Retrieved from https://www.scien.cx/2025/01/13/referencias-de-construtor/

MLA
" » Referências de construtor." Java para Iniciantes (Oracle) | Sciencx - Monday January 13, 2025, https://www.scien.cx/2025/01/13/referencias-de-construtor/
HARVARD
Java para Iniciantes (Oracle) | Sciencx Monday January 13, 2025 » Referências de construtor., viewed ,<https://www.scien.cx/2025/01/13/referencias-de-construtor/>
VANCOUVER
Java para Iniciantes (Oracle) | Sciencx - » Referências de construtor. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2025/01/13/referencias-de-construtor/
CHICAGO
" » Referências de construtor." Java para Iniciantes (Oracle) | Sciencx - Accessed . https://www.scien.cx/2025/01/13/referencias-de-construtor/
IEEE
" » Referências de construtor." Java para Iniciantes (Oracle) | Sciencx [Online]. Available: https://www.scien.cx/2025/01/13/referencias-de-construtor/. [Accessed: ]
rf:citation
» Referências de construtor | Java para Iniciantes (Oracle) | Sciencx | https://www.scien.cx/2025/01/13/referencias-de-construtor/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.