Como funciona a conversão de referência de método?
public class Main {
interface Capitalizer {
public String capitalize(String name);
}
public String toUpperCase() {
return "ALLCAPS";
}
public static void main(String[] args) {
Capitalizer c = String::toUpperCase; //This works
c = Main::toUpperCase; //Compile error
}
}
Ambos são métodos de instância com a mesma assinatura. Por que um funciona e o outro não?
Assinatura deString::toUpperCase
: String toUpperCase();