What decides which functional interface to create from a lambda?
问题 Please consider this example: import java.util.function.Consumer; public class Example { public static void main(String[] args) { Example example = new Example(); example.setConsumer(test -> System.out.println("passed string is " + test)); //uses MyConsumer, why ? example.getConsumer().accept("Test 1"); example.setConsumer((MyConsumer<String>)test -> System.out.println("passed string is " + test)); //uses MyConsumer example.getConsumer().accept("Test 2"); example.setConsumer((Consumer<String>