HelloAsm(二)
2015-06-23 14:10
295 查看
根据制定的方法名和修饰符删除一个方法:
增加类成员:
public class RemoveMethodAdapter extends ClassAdapter { private String mName; private String mDesc; public RemoveMethodAdapter(ClassVisitor cv, String name, String desc) { super(cv); mName = name; mDesc = desc; } @Override public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) { if (name.equals(mName) && desc.equals(mDesc)) { return null; } return super.visitMethod(access, name, desc, signature, exceptions); } } ClassWriter cw2 = new ClassWriter(0); ClassAdapter ca2 = new RemoveMethodAdapter(cw2, "compareTo", "(Ljava/lang/Object;)I"); ClassReader cr4 = new ClassReader(b1); cr4.accept(ca2, 0); byte[] b2 = cw2.toByteArray(); ClassReader cr5 = new ClassReader(b2); cr5.accept(cp, 0);
增加类成员:
public class AddFieldAdapter extends ClassAdapter { private int fAcc; private String mName; private String mDesc; private boolean isFieldPresent; public AddFieldAdapter(ClassVisitor cv, int acc, String name, String desc) { super(cv); fAcc = acc; mName = name; mDesc = desc; } @Override public FieldVisitor visitField(int access, String name, String desc, String signature, Object value) { if (name.equals(desc)) { isFieldPresent = true; } return super.visitField(access, name, desc, signature, value); } @Override public void visitEnd() { if (!isFieldPresent) { FieldVisitor fv = cv.visitField(fAcc, mName, mDesc, null, null); if (fv != null) { fv.visitEnd(); } } super.visitEnd(); } }
相关文章推荐
- Robot Framework Selenium(RFS :web自动化测试神器)
- 关于MIME类型的了解
- ALSA声卡驱动中的DAPM详解之一:kcontrol
- ORA-02030: can only select from fixed tables/views
- leetCode(26):Unique Binary Search Trees
- [美国代购] Nexus 6 与 Moto X 询价聊天记录整理
- leetCode(26):Unique Binary Search Trees 分类: leetCode 2015-06-23 14:09 155人阅读 评论(0) 收藏
- hibernate学习2
- hadoop中文官网
- 找工作_笔试_C_02
- ssh登录慢问题解决方法
- 双网卡上网设置(有线与无线分别上内网与外网)
- 简单oracle安装步骤
- res图片文件转Bitmap
- 打包 tar
- 获取当前系统版本
- AngularJs 总结
- 【转载】CString,string,char*之间的转换
- MySQL和MariaDB 备份 主从 读写分离 推荐
- 笔记_网络05_《漫谈程序员系列:薪资,你是我不能言说的伤》