Class BytecodeGen


  • public final class BytecodeGen
    extends java.lang.Object
    Utility methods for circular proxies, faster reflection, and method interception.

    This class makes heavy use of Function and BiFunction types when interacting with generated fast-classes and enhanced proxies. This is a deliberate design decision to avoid using Guice-specific types in the generated classes. This means generated classes can be defined in the same ClassLoader as their host class without needing access to Guice's own ClassLoader. (In other words it removes any need for bridge ClassLoaders.)

    Author:
    mcculls@gmail.com (Stuart McCulloch), jessewilson@google.com (Jesse Wilson)
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static interface  BytecodeGen.EnhancerBuilder
      Builder of enhanced classes.
    • Constructor Summary

      Constructors 
      Constructor Description
      BytecodeGen()  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static boolean isCircularProxy​(java.lang.Object object)
      Returns true if the given object is a circular proxy.
      • Methods inherited from class java.lang.Object

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

      • ENHANCER_BY_GUICE_MARKER

        public static final java.lang.String ENHANCER_BY_GUICE_MARKER
        See Also:
        Constant Field Values
      • FASTCLASS_BY_GUICE_MARKER

        public static final java.lang.String FASTCLASS_BY_GUICE_MARKER
        See Also:
        Constant Field Values
    • Constructor Detail

      • BytecodeGen

        public BytecodeGen()
    • Method Detail

      • isCircularProxy

        public static boolean isCircularProxy​(java.lang.Object object)
        Returns true if the given object is a circular proxy.