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). ------------- Commit messages: - Simplify code - Merge branch 'master' of https://github.com/openjdk/jdk into feature/class-is-class-or-interface-1 - Class.isClassOrInterface Changes: https://git.openjdk.org/jdk/pull/32109/files Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=32109&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8389468 Stats: 206 lines in 9 files changed: 169 ins; 6 del; 31 mod Patch: https://git.openjdk.org/jdk/pull/32109.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/32109/head:pull/32109 PR: https://git.openjdk.org/jdk/pull/32109
