isReadable abstract method
Determines whether this field can be read from (i.e., retrieved a value) through Jetleaf's reflective or dependency injection mechanisms.
A field is considered readable if all of the following are true:
- It is not static — readable fields must belong to an instance.
- It is not const — constant fields are compile-time constants.
- It is either:
- non-final, meaning it can always be reassigned, or
late final
, meaning it can be assigned once after construction.
Examples
class Example {
final User user1; // ✅ readable (final)
late final User user2; // ✅ readable (late final)
User? user3; // ✅ readable (mutable)
static User? user4; // ❌ not readable (static)
const String key = 'abc'; // ❌ not readable (const)
}
final fields = Class.of(Example).getFields();
for (final field in fields) {
print('${field.getName()}: ${field.isReadable()}');
}
Output:
user1: true
user2: true
user3: true
user4: false
key: false
This method performs an internal access check to ensure the caller has
DomainPermission.READ_FIELDS
before inspecting the field’s properties.
Implementation
bool isReadable();