public class SunUnsafeReflectionProvider extends SunLimitedUnsafeReflectionProvider
The code in the constructor will never be executed and parameters do not have to be known. This is the same method used by the internals of standard Java serialization, but relies on internal code (sun.misc.Unsafe) that may not be present on all JVMs.
The implementation will use the same internals to write into fields. This is a lot faster and was additionally the only possibility to set final fields prior to Java 5.
ReflectionProvider.Visitor| Modifier and Type | Field and Description |
|---|---|
private java.util.Map |
fieldOffsetCache |
exception, unsafefieldDictionary| Constructor and Description |
|---|
SunUnsafeReflectionProvider() |
SunUnsafeReflectionProvider(FieldDictionary dic) |
| Modifier and Type | Method and Description |
|---|---|
private long |
getFieldOffset(java.lang.reflect.Field f) |
protected void |
init() |
private java.lang.Object |
readResolve() |
private void |
write(java.lang.reflect.Field field,
java.lang.Object object,
java.lang.Object value) |
void |
writeField(java.lang.Object object,
java.lang.String fieldName,
java.lang.Object value,
java.lang.Class definedIn) |
newInstance, validateFieldAccessfieldDefinedInClass, fieldModifiersSupported, getField, getFieldOrNull, getFieldType, setFieldDictionary, visitSerializableFieldspublic SunUnsafeReflectionProvider()
public SunUnsafeReflectionProvider(FieldDictionary dic)
public void writeField(java.lang.Object object,
java.lang.String fieldName,
java.lang.Object value,
java.lang.Class definedIn)
writeField in interface ReflectionProviderwriteField in class PureJavaReflectionProviderprivate void write(java.lang.reflect.Field field,
java.lang.Object object,
java.lang.Object value)
private long getFieldOffset(java.lang.reflect.Field f)
private java.lang.Object readResolve()
protected void init()
init in class PureJavaReflectionProvider