Detalhes da implementação de referência de expressão vs método lambda
Dado isto:
class MyClass {
static class A {
public boolean property() {
return Math.random() < 0.5;
}
}
static List<A> filterLambda(List<A> list) {
return list.stream().filter(a -> a.property()).collect(Collectors.toList());
}
static List<A> filterMethodCall(List<A> list) {
return list.stream().filter(A::property).collect(Collectors.toList());
}
}
Quais são as diferenças deo que o compilador faz para cada método?Caso exista, existe alguma diferença no uso da memória ou no tempo de execução? (mesmo que seja pequeno, a questão é apenas acadêmica)PD: Eu sei que a pergunta é semelhante aeste mas acho que não foi resolvido corretamente.