RFR: 8263102: Expand documention of Method.isBridge [v3]
RĂ©mi Forax
github.com+828220+forax at openjdk.java.net
Tue Mar 9 07:23:07 UTC 2021
On Tue, 9 Mar 2021 03:27:29 GMT, Joe Darcy <darcy at openjdk.org> wrote:
>> The existing documentation of Method.isBridge isn't terribly helpful to the reader. This RFE proposes to given a common example of how bridge methods are used. The JLS does *not* have a section discussing bridge methods in detail; bridge methods are a compilation technique for lowering the Java language to the JVM, they are not a language feature per se. The example given is not exhaustive; there can be and are other uses of bridge methods.
>>
>> Once the text is agreed to; I'll update the copyright year as well.
>
> Joe Darcy has updated the pull request incrementally with one additional commit since the last revision:
>
> Respond to review feedback.
src/java.base/share/classes/java/lang/reflect/Method.java line 589:
> 587: * different return type, the virtual machine does not.
> 588: * A
> 589: * common case where covariant overrides are used is for a {@link
I think the example should be clearer because here, you don't show the code of EnumSet.clone().
I wonder if it's not easier if all the code is visible
interface I {
Object m();
}
class A implements I {
String m() { return "hello"; }
}
so you can explain that the VM do the dispatch on I::m()Object so the compiler has to insert a method A::m()Object,
the bridge method with this pseudo-code
class A implements I {
/* bridge */ Object m() { return m(); } // calls m()String
String m() { return "hello"; }
}
-------------
PR: https://git.openjdk.java.net/jdk/pull/2852
More information about the core-libs-dev
mailing list