在我尝试通过ASM动态注入实现AOP功能时,使用idea插件ASM Bytecode Outline,得到以下信息:
INVOKESTATIC java/lang/Thread.currentThread ()Ljava/lang/Thread;
对于此,我使用ASM来进行设置:
mv.visitMethodInsn(INVOKESTATIC, "java/lang/Thread", "currentThread", "()Ljava/lang/Thread", false);
当我运行程序时,控制台爆出错误:
java.lang.ClassFormatError: Method "currentThread" in class cn/test/AsmTest2 has illegal signature "()Ljava/lang/Thread"
所对应的程序代码为:
StackTraceElement stackTraceElement = Thread.currentThread().getStackTrace()[1];
我查看对应的源码,Thread.currentThread()方法的参数为空,返回值为java.lang.Thread
请问有哪位大佬知道这个该怎么解决吗?
如果想获取详细信息,可以查看我在开源中国发布的问答:
www.oschina.net
INVOKESTATIC java/lang/Thread.currentThread ()Ljava/lang/Thread;
对于此,我使用ASM来进行设置:
mv.visitMethodInsn(INVOKESTATIC, "java/lang/Thread", "currentThread", "()Ljava/lang/Thread", false);
当我运行程序时,控制台爆出错误:
java.lang.ClassFormatError: Method "currentThread" in class cn/test/AsmTest2 has illegal signature "()Ljava/lang/Thread"
所对应的程序代码为:
StackTraceElement stackTraceElement = Thread.currentThread().getStackTrace()[1];
我查看对应的源码,Thread.currentThread()方法的参数为空,返回值为java.lang.Thread
请问有哪位大佬知道这个该怎么解决吗?
如果想获取详细信息,可以查看我在开源中国发布的问答:
展开
评论
点赞