> The 3 methods to determine conversions and subtyping on `java.lang.Class`, > which are `isInstance`, `cast`, and `isAssignableFrom`, have their > documentation from the earliest days of the Java Platform. During the > language evolution, a lot of terms have become inaccurate, such as > "assignment-compatible", which does not apply for primitive types, and the > out-of-date instanceof analogy with the upcoming patterns, in `isInstance`; > `isAssignableFrom` is not very clear about arrays; `cast` would also benefit > from more detailed explanations. > > In my facelift, I moved the subtyping description to `isAssignableFrom`, and > left the conversion stuff in `isInstance` and `cast`. I intentionally > avoided linking to too many JLS chapters to reduce confusions. I believe in > this shape, we have a good amount of easily comprehensible yet accurate > specification for all 3 methods, and users are welcome to read the linked JLS > chapters for more details and context. > > --------- > - [x] I confirm that I make this contribution in accordance with the [OpenJDK > Interim AI Policy](https://openjdk.org/legal/ai).
Chen Liang has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains 13 additional commits since the last revision: - Typo tweaks - Merge branch 'master' of https://github.com/openjdk/jdk into doc/class-casts - Rendering updates - More tweaks - Merge branch 'master' of https://github.com/openjdk/jdk into doc/class-casts - Tweak - Merge branch 'master' of https://github.com/openjdk/jdk into doc/class-casts - Stage - Rewording from Kevin - Non-null more straightforward than object - ... and 3 more: https://git.openjdk.org/jdk/compare/a2a1567e...ee574e4f ------------- Changes: - all: https://git.openjdk.org/jdk/pull/28684/files - new: https://git.openjdk.org/jdk/pull/28684/files/9a84be49..ee574e4f Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk&pr=28684&range=08 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=28684&range=07-08 Stats: 6214 lines in 135 files changed: 3814 ins; 2121 del; 279 mod Patch: https://git.openjdk.org/jdk/pull/28684.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/28684/head:pull/28684 PR: https://git.openjdk.org/jdk/pull/28684
