Package com.esotericsoftware.reflectasm
Class ConstructorAccess<T>
- java.lang.Object
-
- com.esotericsoftware.reflectasm.ConstructorAccess<T>
-
- Direct Known Subclasses:
PublicConstructorAccess
public abstract class ConstructorAccess<T> extends java.lang.Object
-
-
Field Summary
Fields Modifier and Type Field Description (package private) boolean
isNonStaticMemberClass
-
Constructor Summary
Constructors Constructor Description ConstructorAccess()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description static <T> ConstructorAccess<T>
get(java.lang.Class<T> type)
private static void
insertConstructor(org.objectweb.asm.ClassWriter cw, java.lang.String superclassNameInternal)
(package private) static void
insertNewInstance(org.objectweb.asm.ClassWriter cw, java.lang.String classNameInternal)
(package private) static void
insertNewInstanceInner(org.objectweb.asm.ClassWriter cw, java.lang.String classNameInternal, java.lang.String enclosingClassNameInternal)
boolean
isNonStaticMemberClass()
abstract T
newInstance()
Constructor for top-level classes and static nested classes.abstract T
newInstance(java.lang.Object enclosingInstance)
Constructor for inner classes (non-static nested classes).
-
-
-
Method Detail
-
isNonStaticMemberClass
public boolean isNonStaticMemberClass()
-
newInstance
public abstract T newInstance()
Constructor for top-level classes and static nested classes.If the underlying class is a inner (non-static nested) class, a new instance will be created using
null
as the this$0 synthetic reference. The instantiated object will work as long as it actually don't use any member variable or method fron the enclosing instance.
-
newInstance
public abstract T newInstance(java.lang.Object enclosingInstance)
Constructor for inner classes (non-static nested classes).- Parameters:
enclosingInstance
- The instance of the enclosing type to which this inner instance is related to (assigned to its synthetic this$0 field).
-
get
public static <T> ConstructorAccess<T> get(java.lang.Class<T> type)
-
insertConstructor
private static void insertConstructor(org.objectweb.asm.ClassWriter cw, java.lang.String superclassNameInternal)
-
insertNewInstance
static void insertNewInstance(org.objectweb.asm.ClassWriter cw, java.lang.String classNameInternal)
-
insertNewInstanceInner
static void insertNewInstanceInner(org.objectweb.asm.ClassWriter cw, java.lang.String classNameInternal, java.lang.String enclosingClassNameInternal)
-
-