public class ClassLayout extends Object
Constructor and Description |
---|
ClassLayout(ClassData classData,
SortedSet<FieldLayout> fields,
int headerSize,
long instanceSize,
boolean check)
Builds the class layout.
|
Modifier and Type | Method and Description |
---|---|
boolean |
equals(Object o) |
SortedSet<FieldLayout> |
fields()
Answer the set of fields, including those in superclasses
|
int |
hashCode() |
int |
headerSize()
Answer header size
|
long |
instanceSize()
Answer instance size
|
static ClassLayout |
parseClass(Class<?> klass)
Produce the class layout for the given class.
|
static ClassLayout |
parseClass(Class<?> klass,
Layouter layouter)
Produce the class layout for the given class, and given layouter.
|
static ClassLayout |
parseInstance(Object instance)
Produce the class layout for the given instance.
|
static ClassLayout |
parseInstance(Object instance,
Layouter layouter)
Produce the class layout for the given instance, and given layouter.
|
String |
toPrintable()
Produce printable stringly representation of class layout.
|
String |
toPrintable(Object instance)
Produce printable stringly representation of class layout.
|
String |
toString() |
public ClassLayout(ClassData classData, SortedSet<FieldLayout> fields, int headerSize, long instanceSize, boolean check)
classData
- class datafields
- field layoutsheaderSize
- header sizeinstanceSize
- instance sizecheck
- whether to check important invariantspublic static ClassLayout parseClass(Class<?> klass)
parseClass(Class,org.openjdk.jol.layouters.Layouter)
,
but with a default layouter.klass
- class to work onpublic static ClassLayout parseClass(Class<?> klass, Layouter layouter)
parseInstance(Object)
.
You can use it to cache the introspection results for a constant-sized
objects, e.g. plain Java objects. It is not recommended to use this method
on arrays, since their lengths differ from instance to instance.klass
- class to work onlayouter
- class layouterpublic static ClassLayout parseInstance(Object instance)
parseInstance(java.lang.Object,org.openjdk.jol.layouters.Layouter)
,
but with a default layouter.instance
- instance to work onpublic static ClassLayout parseInstance(Object instance, Layouter layouter)
parseInstance(Object)
are recommended
for use when the shape of the object is not known in advance. For example,
variable-sized instances (e.g. Java arrays) would not be parsed by
parseClass(Class)
properly, because their lengths are encoded in
the instance objects, not in classes.instance
- instance to work onlayouter
- class layouterpublic SortedSet<FieldLayout> fields()
public long instanceSize()
public int headerSize()
public String toPrintable()
parseInstance(Object)
,
if that instance is still available.public String toPrintable(Object instance)
instance
- instance to work onCopyright © 2017. All Rights Reserved.