Field class abstract
Provides reflective access to class field metadata and value manipulation.
This interface enables runtime inspection and modification of class fields, including access to:
- Field types and declarations
- Modifiers (final, const, etc.)
- Value getters/setters
- Access permissions
{@template field_interface_features}
Key Features
- Type-safe field value access
- Modifier inspection
- Read/write permission checking
- Declaring class resolution
- Signature generation
Implementation Notes
Concrete implementations typically wrap platform-specific reflection objects while providing this uniform interface.
Example Usage
// Get field metadata
final nameField = userClass.getField('name');
// Inspect field properties
print('Field type: ${nameField.getType<String>().getName()}');
print('Is final: ${nameField.isFinal()}');
// Access field values
final currentName = nameField.getValue(userInstance);
nameField.setValue(userInstance, 'New Name');
{@endtemplate}
- Inheritance
-
- Object
- PermissionManager
- Source
- Field
- Implemented types
Constructors
- Field()
Properties
- hashCode → int
-
The hash code for this object.
no setterinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
Methods
-
annotationMatches<
A> (Annotation annotation) → bool -
inherited
-
asAnnotation(
) → AnnotationFieldDeclaration? - Returns the annotation field declaration if it is an annotation field declaration, otherwise null.
-
asEnum(
) → EnumFieldDeclaration? - Returns the enum field declaration if it is an enum field declaration, otherwise null.
-
asField(
) → FieldDeclaration? - Returns the field declaration if it is a field declaration, otherwise null.
-
asRecord(
) → RecordFieldDeclaration? - Returns the record field declaration if it is a record field declaration, otherwise null.
-
checkAccess(
String operation, DomainPermission permission) → void -
Verifies access permissions before performing sensitive operations.
inherited
-
getAllDirectAnnotations(
) → List< Annotation> -
Gets all annotations applied to this element.
inherited
-
getDeclaration(
) → Declaration -
Gets the type declaration metadata for this class.
inherited
-
getDeclaringClass<
D> () → Class< D> -
Gets the class that declares this method.
inherited
-
getDirectAnnotation<
A> () → A? -
Gets a single annotation by type, if present.
inherited
-
getDirectAnnotations<
A> () → List< A> -
Gets all annotations of a specific type.
inherited
-
getName(
) → String -
Gets the declared name of the source.
inherited
-
getParent(
) → Declaration - Gets the parent declaration of this field.
-
getPosition(
) → int - The position of the enum value as-is in the enum class
-
getProtectionDomain(
) → ProtectionDomain -
Gets the protection domain governing access to this element.
inherited
-
getReturnClass(
) → Class< Object> -
Gets the return type of the method.
inherited
-
getReturnType(
) → Type -
Gets the return type of the method.
inherited
-
getSignature(
) → String -
Gets the executable signature as a string.
inherited
-
getType(
) → Type - Gets the type of the field.
-
getValue(
[Object? instance]) → dynamic - Gets the field's value from an instance.
-
getValueAs<
T> ([Object? instance]) → T? - Gets the field's value with type safety.
-
hasDirectAnnotation<
A> () → bool -
Checks if this element has a specific annotation.
inherited
-
isAbstract(
) → bool - Checks if this field is abstract.
-
isAnnotationField(
) → bool - Checks if this field is an annotation field.
-
isConst(
) → bool - Checks if this field is const.
-
isEnumField(
) → bool - Checks if this field is an enum field.
-
isFinal(
) → bool - Checks if this field is final.
-
isLate(
) → bool - Checks if this field is late.
-
isNamed(
) → bool - Checks if this is a named field.
-
isNullable(
) → bool - Returns true if the field is nullable.
-
isPositional(
) → bool - Checks if this is a positional field.
-
isPublic(
) → bool -
Checks if this element is public.
inherited
-
isReadable(
) → bool - Determines whether this field can be read from (i.e., retrieved a value) through Jetleaf's reflective or dependency injection mechanisms.
-
isRecordField(
) → bool - Checks if this field is a record field.
-
isStatic(
) → bool - Checks if this field is static.
-
isWritable(
) → bool - Determines whether this field can be written to (i.e., assigned a value) through Jetleaf's reflective or dependency injection mechanisms.
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
setValue(
Object? instance, dynamic value) → void - Sets the field's value on an instance.
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited
Static Methods
-
declared(
Declaration declaration, Declaration parent, ProtectionDomain domain) → Field - Creates a Field instance from reflection metadata.