Интерфейс ClassFileElement
- Все известные подинтерфейсы:
AccessFlags, AnnotationDefaultAttribute, ArrayLoadInstruction, ArrayStoreInstruction, Attribute<A>, AttributedElement, BootstrapMethodsAttribute, BranchInstruction, CharacterRange, CharacterRangeTableAttribute, ClassElement, ClassFileVersion, ClassModel, CodeAttribute, CodeElement, CodeModel, CompilationIDAttribute, CompoundElement<E>, ConstantInstruction, ConstantInstruction.ArgumentConstantInstruction, ConstantInstruction.IntrinsicConstantInstruction, ConstantInstruction.LoadConstantInstruction, ConstantValueAttribute, ConvertInstruction, DeprecatedAttribute, DiscontinuedInstruction, DiscontinuedInstruction.JsrInstruction, DiscontinuedInstruction.RetInstruction, EnclosingMethodAttribute, ExceptionCatch, ExceptionsAttribute, FieldElement, FieldInstruction, FieldModel, IncrementInstruction, InnerClassesAttribute, Instruction, Interfaces, InvokeDynamicInstruction, InvokeInstruction, LabelTarget, LineNumber, LineNumberTableAttribute, LoadInstruction, LocalVariable, LocalVariableTableAttribute, LocalVariableType, LocalVariableTypeTableAttribute, LookupSwitchInstruction, MethodElement, MethodModel, MethodParametersAttribute, ModuleAttribute, ModuleHashesAttribute, ModuleMainClassAttribute, ModulePackagesAttribute, ModuleResolutionAttribute, ModuleTargetAttribute, MonitorInstruction, NestHostAttribute, NestMembersAttribute, NewMultiArrayInstruction, NewObjectInstruction, NewPrimitiveArrayInstruction, NewReferenceArrayInstruction, NopInstruction, OperatorInstruction, PermittedSubclassesAttribute, PseudoInstruction, RecordAttribute, RecordComponentInfo, ReturnInstruction, RuntimeInvisibleAnnotationsAttribute, RuntimeInvisibleParameterAnnotationsAttribute, RuntimeInvisibleTypeAnnotationsAttribute, RuntimeVisibleAnnotationsAttribute, RuntimeVisibleParameterAnnotationsAttribute, RuntimeVisibleTypeAnnotationsAttribute, SignatureAttribute, SourceDebugExtensionAttribute, SourceFileAttribute, SourceIDAttribute, StackInstruction, StackMapTableAttribute, StoreInstruction, Superclass, SyntheticAttribute, TableSwitchInstruction, ThrowInstruction, TypeCheckInstruction, UnknownAttribute
- Все известные реализующие классы:
CustomAttribute
public sealed interface ClassFileElement permits AttributedElement, CompoundElement<E>, Attribute<A>, ClassElement, CodeElement, FieldElement, MethodElement
class. AttributedElement указывает, что структура содержит Attribute. CompoundElement указывает, что структуру можно рассматривать как композицию структур-членов, членство которых обозначается ClassElement, MethodElement, FieldElement или CodeElement. Элементы-члены
ClassModel, MethodModel, FieldModel и CodeModel имеют каждый специализированный интерфейс, обозначающий их структуры-члены: ClassElement, MethodElement, FieldElement и CodeElement. Их можно передать в ClassBuilder, MethodBuilder, FieldBuilder или CodeBuilder, чтобы включить их в качестве членов создаваемой модели. Если не указано иное, эти структуры передаются при обходе соответствующих моделей. Некоторые из этих элементов могут встречаться при обходе моделей не более одного раза или ровно один раз; такие элементы обрабатываются особым образом в ClassFileBuilder, что указано в соответствующих интерфейсах моделирования. Если такие элементы встречаются при обходе несколько раз, следует использовать последнее вхождение, а все предыдущие экземпляры отбросить. Эти маркерные интерфейсы элементов-членов являются запечатанными; в будущих версиях платформы Java SE могут быть определены новые элементы в запечатанной иерархии по мере развития формата файлов class для платформы Java. Использование исчерпывающего оператора switch с сопоставлением с образцом для этих иерархий указывает, что пользователь хочет, чтобы код обработки выполнялся только для определённой версии платформы Java, и приведёт к сбою, если будут обнаружены неизвестные новые элементы.
© 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/ClassFileElement.html