> 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 15 additional commits since the 
last revision:

 - Bug spotted by Aggelos
 - Merge branch 'master' of https://github.com/openjdk/jdk into doc/class-casts
 - 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
 - ... and 5 more: https://git.openjdk.org/jdk/compare/cc38657f...725cedfc

-------------

Changes:
  - all: https://git.openjdk.org/jdk/pull/28684/files
  - new: https://git.openjdk.org/jdk/pull/28684/files/ee574e4f..725cedfc

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=28684&range=09
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=28684&range=08-09

  Stats: 10933 lines in 370 files changed: 7310 ins; 1984 del; 1639 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

Reply via email to