new Thread(()-> System.out.println("Executando um Runnable")).start();
Nao compila
new Thread(() System.out::println("Executando um Runnable")).start();
new Thread(()-> System.out.println("Executando um Runnable")).start();
Nao compila
new Thread(() System.out::println("Executando um Runnable")).start();
É pq no exemplo de baixo vc não está usando o method reference.. Method Reference é literalmente uma referencia para um método... vc passa a referência e quem aplica os argumento é o runtime... Ex:
Arrays.asList("bla").forEach(System.out::println);
Quando vc rodar, o bla será passado como argumento do println :). No caso que vc colocou, não rola mesmo.