我在我的类路径(如果重要的话,在iReport中)中加载了一个jar,可以肯定它具有所需的方法,但是当我尝试测试连接时,因此调用了jar,我得到了java.lang.NoSuchMethodError,说它正在引用班上
Lorg/springframework/web/context/WebApplicationContext
我不确定这是否与问题有关,但是开头的“ L”是哪里来的?下次我上课时,课后有一个“ V”。这些信件从哪里来?它们是什么意思?
堆栈跟踪的开始:
java.lang.NoSuchMethodError: org.springframework.web.context.ContextLoader .getCurrentWebApplicationContext()Lorg/springframework/web/context/WebApplicationContext;
Java使用这些字母在内部对方法签名进行编码。例如,“ L”表示后面的“ Object”,该“ Object”由其完整类名指定,后跟一个分号。“ V”应以括号开头,并描述“ void”的返回类型。
举个例子:
java.lang.NoSuchMethodError: org.springframework.web.context.ContextLoader .getCurrentWebApplicationContext()Lorg / springframework / web / context / WebApplicationContext;
它说,有在类中没有方法org.springframework.web.context.ContextLoader称为getCurrentWebApplicationContext不接受任何参数[记()]并返回一个对象(通过宣布L称为`组织/ springframework的/网络/上下文/ WebApplicationContext的)(通过关闭“;”)。
org.springframework.web.context.ContextLoader
getCurrentWebApplicationContext
()
L
编辑: 所有代码的列表在JNI规范的表3.2中。
编辑2: 更具权威性:4.3节JVM规范的描述符包含格式和代码的完整参考。