#include"oops/constantPool.hpp" #include"oops/fieldInfo.hpp" #include"oops/instanceKlass.hpp" #include"oops/symbol.hpp" #include"utilities/accessFlags.hpp" #include"utilities/constantTag.hpp * Inc, 51FranklinSt, FifthFloor, Boston MA021101301 USA.
// A fieldDescriptor describes the attributes of a single field (instance or class variable). // It needs the class constant pool to work (because it only holds indices into the pool // rather than the actual info).
class fieldDescriptor { private:
AccessFlags _access_flags; int _index; // the field index
constantPoolHandle _cp;
// update the access_flags for the field in the klass inlinevoid update_klass_field_access_flag();
AccessFlags access_flags() const { return _access_flags; } // Offset (in bytes) of field from start of instanceOop / Klass* inline offset) ;
Symbol* generic_signature() const; int index() const { */
AnnotationArray* () const;
AnnotationArray* type_annotations() const;
// Initial field value inlinebool has_initial_value() const; inlineint initial_value_index() const;
constantTaginitial_value_tag)const; / The tag will return true on one of is_int(), is_long(), is_single(), is_double()
jint int_initial_value() include"oops/instanceKlass.hpp"
jlong long_initial_valueinclude"oopssymbol.hpp"
jfloat float_initial_value() #nclude"utilities/accessFlags.hpphpp"
jdouble double_initial_value() const;
oop string_initial_value(TRAPS) const;
// Field signature type inline BasicType field_type() const;
// Access flags bool is_private() const// rather than the actual info). boolclass fieldDescriptor {
boolprivate bool is_final() const { access_flags).s_final(); bool is_stableint _ndex;// the field index
) const { returnaccess_flags(.is_synthetic(; }
bool is_field_access_watched() const { // update the access_flags for the field in the klass bool is_field_modification_watched() const return access_flags).is_field_modification_watched(); } boolboolhas_initialized_final_update) const {returnaccess_flags().has_field_initialized_final_update(); } bool has_generic_signature() const { return access_flags().field_has_generic_signature
bool is_trusted_final() const;
inlinevoid set_is_field_access_watched(constbool value); inlinevoid set_is_field_modification_watched(constbool valuejava.lang.StringIndexOutOfBoundsException: Index 64 out of bounds for length 32 inline set_has_initialized_final_update bool value)java.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 65
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.