Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Método sem argumento

Fiquei com uma dúvida, no caso do metodo não receber nenhum argumento eu sou obrigado a colocar ()? esse () que ta la é do metodo run certo? Me confundi um pouco, o exemplo passado é:

new Thread(new Runnable() {

@Override public void run() { System.out.println("Executando um Runnable"); }

}).start();

new Thread(() -> System.out.println("Executando um Runnable")).start();

2 respostas
solução!

Olá, Ricardo!

Sim, é obrigatório. Todo o método necessita dos parêntesis, mesmo que não tenha nenhum parâmetro. Os parêntesis indicam que uma ação a ser executada ou condição a ser verificada.

No seu código você tem parêntesis em alguns lugares que mostram isso.

Na primeira linha tem o new Thread( que você chama o construtor da classe Thread que recebe uma referência de Runnable.

Ainda na primeira linha também tem o new Runnable() indicando que você está chamando o método sem argumentos da classe Runnable.

Na segunda linha, você sobrescreve o método run() da classe Runnable que você instanciou na primeira linha mencionado aí em cima.

Ainda na segunda linha, você também executa o método println da classe PrintStream que tem vários overloads do método podendo receber vários tipos de argumentos. Para maiores informações: https://docs.oracle.com/javase/8/docs/api/java/io/PrintStream.html

Na terceira linha, você chama o método start da classe Thread.

E na quarta linha você novamente chama o construtor de Thread, o println de PrintStream e o start de Thread.

Nenhum destes métodos ou construtores funcionariam sem os parêntesis, mesmo os que não recebem nenhum argumento.

Ajudou?

Bom dia Arthur, Ajudou sim, muito obrigado : )