为什么是“一个”呢;L";添加到我的Java路径?

为什么是“一个”呢;L";添加到我的Java路径?,java,jar,Java,Jar,我在我的类路径中加载了一个jar(在iReport中,如果有必要的话),我确信它已经有了所需的方法。当我尝试测试连接时,因此调用jar,我得到一个java.lang.NoSuchMethodError,说它正在引用该类 Lorg/springframework/web/context/WebApplicationContext 我不确定这是否与问题有关,但一开始的“L”来自哪里?还有一次,我在引用一个类,该类后面有一个“V”。这些字母来自哪里?它们是什么意思 堆栈跟踪的开始: java.lan

我在我的类路径中加载了一个jar(在iReport中,如果有必要的话),我确信它已经有了所需的方法。当我尝试测试连接时,因此调用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”宣布一个下面的“对象”,该对象由其完整的类名指定,后跟分号。“V”前面应该有括号,并描述返回类型“void”

以你为例:

java.lang.NoSuchMethodError:
org.springframework.web.context.ContextLoader .getCurrentWebApplicationContext()Lorg/springframework/web/context/WebApplicationContext

它说,类
org.springframework.web.context.ContextLoader
中没有一个方法被称为
getCurrentWebApplicationContext
,它不接受任何参数[由
()
]表示]并返回一个名为“org/springframework/web/context/WebApplicationContext”(由“;”关闭)的对象(由
L
宣布)

编辑:所有代码的列表见本手册的表3.2


EDIT2:更具权威性:JVM规范的一节包含格式和代码的完整参考。

在Java的内部类规范中,
L
字符用于表示类名

有关详细信息,请参阅

和一个字段类型:

BaseType
B     byte (signed byte)
C     char (Unicode character)
D     double (double-precision floating-point value)
F     float (single-precision floating-point value)
I     int (integer)
J     long (long integer)
L<classname>;     reference (an instance of class <classname>)
S     short (signed short)
Z     boolean (true or false)
[     reference (one array dimension )
BaseType
B字节(有符号字节)
C字符(Unicode字符)
D双精度(双精度浮点值)
F浮点(单精度浮点值)
I int(整数)
J长(长整数)
L引用(类的实例)
S短(签名短)
Z布尔值(真或假)
[参考(一个数组维度)

字母代码有好的参考资料吗?我本来打算发布基本相同的答案,但我不想做无根据的陈述。我还发现:P-project F-folder