Expressão lambda do Java 8 com uma classe abstrata com apenas um método [duplicado]
Esta pergunta já tem uma resposta aqui:
Expressões lambda para classes abstratas 2 respostasEstou aprendendo expressões lambda em Java 8. Alguém pode me explicar como usar a expressão lambda com uma classe abstrata que possui apenas um método (se possível)?
Por exemplo, esta é a classe abstrata:
public abstract class ClassA {
public abstract void action();
}
E eu tenho outra classe que leva em seu construtor uma instância deClassA
:
public ClassB {
public ClassB(String text, ClassA a){
//Do stuff
}
}
Então, eu queria saber como escrever algo como isto:
ClassB b = new ClassB("Example", new ClassA(() -> System.out.println("Hello")));
Obviamente, isso não funciona, mas existe uma maneira de usar uma expressão lambda aqui ou não? Se houver, o que estou fazendo de errado?