我创建了一个简单的类
(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
如果取消对行号(5)的注释,则不能在这行之后得到所有的println:
输出: premain \n
当我使用课堂上的每一种方法时…
有什么想法吗?
发布于 2011-10-11 09:24:02
我想可能是因为clazz是空的。它只为类重新定义或重新转换提供。transform()方法可能抛出NPE,其效果与返回null相同,这意味着不执行转换。
https://stackoverflow.com/questions/7722936
复制相似问题