Java 理解nosuchmethodexception中的方法签名
我得到了这个异常,但解决了它Java 理解nosuchmethodexception中的方法签名,java,exception,constructor,init,nosuchmethoderror,Java,Exception,Constructor,Init,Nosuchmethoderror,我得到了这个异常,但解决了它 java.lang.NoSuchMethodError: antlr.NoViableAltForCharException.<init> (CLjava/lang/String;II)V java.lang.NoSuchMethodError:antlr.NoViableAltForCharException。 (CLjava/lang/String;II)V 但我想知道如何解释这类消息:“(CLjava/lang/String;II)V” 另外,
java.lang.NoSuchMethodError: antlr.NoViableAltForCharException.<init>
(CLjava/lang/String;II)V
java.lang.NoSuchMethodError:antlr.NoViableAltForCharException。
(CLjava/lang/String;II)V
但我想知道如何解释这类消息:“(CLjava/lang/String;II)V”
另外,这个“init”是否提到NoViableAltForCharException类的构造函数
谢谢。正在查找构造函数
antlr.NoViableAltForCharException(char,String,int,int)
,但在类中找不到它
方法是构造函数,
方法是静态初始化块。@gkamal列出了参数类型,并添加了V
为void。名义上,构造函数返回void
,这就是签名末尾出现V
的原因
顺便说一句:
J
表示长时间,而L
表示类,而L
表示长时间,而J
表示Java类,这可能是一个讽刺 请参阅。这是一种方便的简写符号。类型签名-取自
JNI使用JavaVM的类型签名表示。表3-2显示了这些类型签名
Z boolean
B byte
C char
S short
I int
J long
F float
D double
L fully-qualified-class ; fully-qualified-class
[ type type[]
( arg-types ) ret-type method type
例如,Java方法:
long f (int n, String s, int[] arr);
具有以下类型签名:
(ILjava/lang/String;[I)J
服务器上可能有一个过时的.jar文件,而不是编译代码时使用的文件。
仔细检查服务器上的所有.jar文件是否与您正在编译的文件相同。我相信海报是在寻找如何解释它,而不是实际的解释。谢谢Peter,您的回答对方法签名和init方法都很有帮助。