W3cubDocs

/OpenJDK 25

Interface InnerClassInfo

public sealed interface InnerClassInfo
Models a single entry in the InnerClassesAttribute.
See Java Virtual Machine Specification:
4.7.6 The InnerClasses Attribute
Since:
24
See Also:

Method Summary

Modifier and Type Method Description
default Set<AccessFlag> flags()
Returns a set of flag enums denoting access permissions and properties of the nested class.
int flagsMask()
Returns a bit mask of flags denoting access permissions and properties of the inner class.
default boolean has(AccessFlag flag)
Returns whether a specific access flag is set.
ClassEntry innerClass()
Returns the nested class described by this entry.
Optional<Utf8Entry> innerName()
Returns the simple name of this class, or empty if this class is anonymous.
static InnerClassInfo of(ClassEntry innerClass, Optional<ClassEntry> outerClass, Optional<Utf8Entry> innerName, int flags)
Returns a nested class description.
static InnerClassInfo of(ClassDesc innerClass, Optional<ClassDesc> outerClass, Optional<String> innerName, int flags)
Returns a nested class description.
static InnerClassInfo of(ClassDesc innerClass, Optional<ClassDesc> outerClass, Optional<String> innerName, AccessFlag... flags)
Returns a nested class description.
Optional<ClassEntry> outerClass()
Returns the class or interface of which this class is a member, if it is a member of a class or interface.

Method Details

innerClass

ClassEntry innerClass()
Returns the nested class described by this entry.
Returns:
the nested class described by this entry

outerClass

Optional<ClassEntry> outerClass()
Returns the class or interface of which this class is a member, if it is a member of a class or interface. This may be empty if this class is local or anonymous.
Returns:
the class or interface of which this class is a member, if it is a member of a class or interface
See Also:

innerName

Optional<Utf8Entry> innerName()
Returns the simple name of this class, or empty if this class is anonymous.
Returns:
the simple name of this class, or empty if this class is anonymous
See Also:

flagsMask

int flagsMask()
Returns a bit mask of flags denoting access permissions and properties of the inner class. It is in the range of unsigned short, [0, 0xFFFF].
Returns:
a bit mask of flags denoting access permissions and properties of the inner class
See Also:

flags

default Set<AccessFlag> flags()
Returns a set of flag enums denoting access permissions and properties of the nested class.
Returns:
a set of flag enums denoting access permissions and properties of the nested class
Throws:
IllegalArgumentException - if the flags mask has any undefined bit set
See Also:

has

default boolean has(AccessFlag flag)
Returns whether a specific access flag is set.
Parameters:
flag - the access flag
Returns:
whether a specific access flag is set
See Also:

of

static InnerClassInfo of(ClassEntry innerClass, Optional<ClassEntry> outerClass, Optional<Utf8Entry> innerName, int flags)
Returns a nested class description.
Parameters:
innerClass - the nested class being described
outerClass - the class that has the nested class as a member, if it exists
innerName - the simple name of the nested class, if it is not anonymous
flags - the inner class access flags
Returns:
a nested class description

of

static InnerClassInfo of(ClassDesc innerClass, Optional<ClassDesc> outerClass, Optional<String> innerName, int flags)
Returns a nested class description.
Parameters:
innerClass - the nested class being described
outerClass - the class that has the nested class as a member, if it exists
innerName - the simple name of the nested class, if it is not anonymous
flags - the inner class access flags
Returns:
a nested class description
Throws:
IllegalArgumentException - if innerClass or outerClass represents a primitive type

of

static InnerClassInfo of(ClassDesc innerClass, Optional<ClassDesc> outerClass, Optional<String> innerName, AccessFlag... flags)
Returns a nested class description.
Parameters:
innerClass - the nested class being described
outerClass - the class that has the nested class as a member, if it exists
innerName - the name of the nested class, if it is not anonymous
flags - the inner class access flags
Returns:
a nested class description
Throws:
IllegalArgumentException - if innerClass or outerClass represents a primitive type, or if any flag cannot be applied to the AccessFlag.Location.INNER_CLASS location

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/lang/classfile/attribute/InnerClassInfo.html