Java 印刷与反射
我创建了一个简单的类Java 印刷与反射,java,reflection,Java,Reflection,我创建了一个简单的类 (1) public class Inspector implements ClassFileTransformer{ (2) public byte[] transform(ClassLoader loader, String className, Class<?> clazz, (3) ProtectionDomain domain, byte[] bytes) (4) thro
(1) public class Inspector implements ClassFileTransformer{
(2) public byte[] transform(ClassLoader loader,
String className, Class<?> clazz,
(3) ProtectionDomain domain, byte[] bytes)
(4) throws IllegalClassFormatException {
(5) // clazz.getName();
(6) System.out.println("in Transform");
(7) return bytes;
}
public static void premain(String agentArgument,
Instrumentation instrumentation) {
System.out.println("in premain");
instrumentation.addTransformer(new Inspector());
}
输出:在premain中\n在Transform中
如果我取消对第5行的注释,我将无法获取该行之后的所有println:
输出:在premain中\n
当我使用类中的每个方法时也是一样的
有什么想法吗?我想可能是因为clazz是空的。它仅用于类重定义或重传。 您的转换方法可能会抛出一个NPE,其效果与返回null相同,这意味着不执行任何转换