On Wed, 21 Oct 2026 06:11:16 GMT, Chen Liang <[email protected]> wrote:
>> Introduce an instance method, `isClassOrInterface`, to `java.lang.Class` and >> `java.lang.invoke.TypeDescriptor$OfField`. >> >> `java.lang.constant.ClassDesc` comes with an `isClassOrInterface` method. It >> turns out that such a check is frequently needed in the use of `Class` >> objects, usually as `isArray() || isPrimitive()` or `!isArray() && >> !isPrimitive()`, with 14 occurrences in various reflective code. >> >> In addition, `Class` can offer a more efficient implementation than two >> checks: it can perform a single bit pattern check to derive this result, >> making such an API more feasible. >> >> --------- >> - [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 12 additional commits since > the last revision: > > - More wording > - Merge branch 'master' of github.com:openjdk/jdk into > feature/class-is-class-or-interface-1 > - Incorporate desiredAssertionStatus changes and review > - Merge branch 'master' of https://github.com/openjdk/jdk into > feature/class-is-class-or-interface-1 > - Merge branch 'master' of https://github.com/openjdk/jdk into > feature/class-is-class-or-interface-1 > - More spec clarifications > - Wording review from Joe > - Update usage in Valhalla > - Merge branch 'master' of https://github.com/openjdk/jdk into > feature/class-is-class-or-interface-1 > - Simplify code > - ... and 2 more: https://git.openjdk.org/jdk/compare/35f24cc8...a085eaf0 There is ClassDesc.isClassOrInterface. Yes javax.lang.model has DeclaredType, but my starting point was consistency with constant API. ------------- PR Comment: https://git.openjdk.org/jdk/pull/32109#issuecomment-6316905526
