实际上我在课程中有一个方法如下。
public static final void print(String str){
System.out.println(str);
}
我想从met hod中删除final
修饰符。所以在这之后,我的方法将如下所示:
public static void print(String str){
System.out.println(str);
}
使用ASM,我们将在
中获取此信息public MethodVisitor visitMethod(int access, String name,
String desc, String signature,
String[] exceptions) { }
在上面,我认为要实现上述情况,我们需要使用access参数。 但访问是公共+静态+最终的总和。 如何删除最终是我的问题?
同样适用于班级最终修饰符吗?
答案 0 :(得分:6)
你只需要清除" final"有点像这样:
public MethodVisitor visitMethod(int access, String name,
String desc, String signature,
String[] exceptions) {
return super.visitMethod(
access & (~Opcodes.ACC_FINAL),
name, desc, signature, exceptions);
}