2.2.5 移除类的成员
要移除一些信息,只需要在处理该信息的方法中上面都不做就可以了,下面这个例子就是移除所有内部类和外部类信息:
public class RemoveDebugAdapter extends ClassAdapter {
public RemoveDebugAdapter(ClassVisitor cv) {
super(cv);
}
@Override
public void visitSource(String source, String debug) {
}
@Override
public void visitOuterClass(String owner, String name, String desc) {
}
@Override
public void visitInnerClass(String name, String outerName, String innerName, int access) {
}
}
要移除方法或字段信息,只需要返回null就可以了:
public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) {
if (name.equals(mName) && desc.equals(mDesc)) {
return null;
}
return cv.visitMethod(access, name, desc, signature, exceptions);
}