在我尝试通过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
展开
评论