TransportActionNodeProxyExecuteMethodsInterceptor implements InstanceConstructorInterceptor, InstanceMethodsAroundInterceptor { @Override public void onConstruct(EnhancedInstance objInst, Object[] allArguments) { EnhancedInstance actions = (EnhancedInstance) allArguments[2]; objInst.setSkyWalkingDynamicField(actions.getSkyWalkingDynamicField()); }  @Override void beforeMethod(EnhancedInstance objInst, Method method, Object[] allArguments,
                             Class<?>[] argumentsTypes, MethodInterceptResult result); @Override Object afterMethod(EnhancedInstance objInst, Method method, Object[] allArguments,
                              Class<?>[] argumentsTypes, Object ret); @Override void handleMethodException(EnhancedInstance objInst, Method method, Object[] allArguments,
                                      Class<?>[] argumentsTypes, Throwable t); @Override void onConstruct(EnhancedInstance objInst, Object[] allArguments);  }
@Test public void testConstruct() { final EnhancedInstance objInst1 = new EnhancedInstance() { private Object object = null; @Override public Object getSkyWalkingDynamicField() { return object; } @Override public void setSkyWalkingDynamicField(Object value) { this.object = value; } }; final EnhancedInstance objInst2 = new EnhancedInstance() { private Object object = null; @Override public Object getSkyWalkingDynamicField() { return object; } @Override public void setSkyWalkingDynamicField(Object value) { this.object = value; } }; objInst1.setSkyWalkingDynamicField(123); Object[] allArguments = new Object[] { null, null, objInst1 }; interceptor.onConstruct(objInst2, allArguments); assertThat(objInst1.getSkyWalkingDynamicField(), is(objInst2.getSkyWalkingDynamicField())); }