Class ConstructorAccess<T>

  • Direct Known Subclasses:
    PublicConstructorAccess

    public abstract class ConstructorAccess<T>
    extends java.lang.Object
    • 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).
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • isNonStaticMemberClass

        boolean isNonStaticMemberClass
    • Constructor Detail

      • ConstructorAccess

        public ConstructorAccess()
    • 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).
      • 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)