On Wed, 3 Jan 2024 06:43:22 GMT, Joe Darcy <da...@openjdk.org> wrote:
> As recently discussed on core libs, sealed-ness information could be included > in the Class.toGenericString() output, analagous to how "modifiers" that also > correspond to JVM access flags are handled. > > This is the initial spec, implementation, and test updated needed for that > change. If there is consensus this is a reasonable direction, I'll create the > CSR, etc. LGTM src/java.base/share/classes/java/lang/Class.java line 264: > 262: /** > 263: * Returns a string describing this {@code Class}, including > 264: * information about modifiers, {@linkplain #isSealed() sealing}, > and type parameters. If Class.toGenericString is a useful API point for describing the blessed order of modifiers in the JDK perhaps the existing classes that describe modifiers could/should cross reference this method. src/java.base/share/classes/java/lang/Class.java line 320: > 318: // sufficient to check for sealed-ness after all > 319: // modifiers are printed. > 320: boolean isSealed = isSealed(); A small concern about performance. Class.isSealed() calls getPermittedSubclasses() which assembles and filters the list of classes and a possible security manager check and then only checks for non-null. Perhaps a separate issue could look at that. ------------- Marked as reviewed by rriggs (Reviewer). PR Review: https://git.openjdk.org/jdk/pull/17239#pullrequestreview-1802318323 PR Review Comment: https://git.openjdk.org/jdk/pull/17239#discussion_r1440551717 PR Review Comment: https://git.openjdk.org/jdk/pull/17239#discussion_r1440543767