RFR: 8309819: Clarify API note in Class::getName and MethodType::toMethodDescriptorString [v9]
Chen Liang
liach at openjdk.org
Tue Jun 27 14:40:25 UTC 2023
> The API specification for descriptorString not being a strict inverse of Class::forName and MethodType::fromDescriptorString are not entirely correct.
>
> 1. Class::descriptorString was never an inverse of Class::forName, which takes a binary name instead. The note about different class loaders is moved to getName, as ClassDesc requires an explicit lookup for resolution already.
> 2. MethodType::toMethodDescriptorString ends with a meaningless sentence: "fromMethodDescriptorString, because the latter requires a suitable class loader argument.", and the "Note:" section can be replaced with an `@apiNote`.
> 3. Both of these didn't mention hidden classes (or other non-nominally-describable classes) as a reason that prevents the inversion operation, in addition to distinct class loaders. Added valid method type descriptor/binary name as a prerequisite for the distinct class loader explanation.
>
> A few user-defined anchor links are replaced with updated javadoc link tag format as well. The explicit html-style links in `@see` tags are unchanged in order to retain the non-code output.
>
> The rendered specifications:
> https://cr.openjdk.org/~liach/8309819/06/java.base/java/lang/Class.html
> https://cr.openjdk.org/~liach/8309819/06/java.base/java/lang/invoke/MethodType.html
Chen Liang has updated the pull request incrementally with one additional commit since the last revision:
produce identical component descriptors in descriptor strings -> cannot be distinguished in descriptor strings
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/14411/files
- new: https://git.openjdk.org/jdk/pull/14411/files/96b142e0..3bea7506
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=14411&range=08
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=14411&range=07-08
Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod
Patch: https://git.openjdk.org/jdk/pull/14411.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/14411/head:pull/14411
PR: https://git.openjdk.org/jdk/pull/14411
More information about the core-libs-dev
mailing list