Class BridgeMethodResolver

java.lang.Object
net.sf.cglib.proxy.BridgeMethodResolver

class BridgeMethodResolver extends Object
Uses bytecode reflection to figure out the targets of all bridge methods that use invokespecial and invokeinterface, so that we can later rewrite them to use invokevirtual.

For interface bridges, using invokesuper will fail since the method being bridged to is in a superinterface, not a superclass. Starting in Java 8, javac emits default bridge methods in interfaces, which use invokeinterface to bridge to the target method.

  • Field Details

    • declToBridge

      private final Map declToBridge
    • classLoader

      private final ClassLoader classLoader
  • Constructor Details

    • BridgeMethodResolver

      public BridgeMethodResolver(Map declToBridge, ClassLoader classLoader)
  • Method Details

    • resolveAll

      public Map resolveAll()
      Finds all bridge methods that are being called with invokespecial & returns them.