为什么Java不支持静态方法的动态多态?如果答案是"静态方法不应该在实例上调用,因此不需要在运行时解析方法调用",那么进一步的问题是"为什么Java允许我在实例上调用静态方法?".为什么不直接通过给出一些编译时错误来阻止用户直接调用实例上的方法.
反过来说,如果Java支持静态方法的Runtime Polymorphism会出什么问题?
编译器如何确保以下语句的等效lambda
BinaryOperator<String> concatOperator = String::concat;
Run Code Online (Sandbox Code Playgroud)
是
BinaryOperator<String> concatOperator = (resultString, inputString) -> resultString.concat(inputString);
Run Code Online (Sandbox Code Playgroud)
并不是
BinaryOperator<String> concatOperator = (resultString, inputString) -> inputString.concat(resultString);
Run Code Online (Sandbox Code Playgroud)