2013-07-31 109 views
0

此错误消息告诉我有关缺少构造函数的签名是什么?Java - 来自错误消息的信息

所致:java.lang.NoSuchMethodError:org.apache.thrift.transport.TSocket(Ljava /郎/字符串; III)V

莫非存在与单字符串参数没有构造?我知道什么是“III”和“V”在这里更有趣。

谢谢。

+2

我们可以看到,引发此异常你的代码? –

+2

这可以帮助你http://docs.oracle.com/javase/7/docs/technotes/guides/jni/spec/types.html#wp276 – nachokk

回答

6

当你看到Ljava/lang/String;,是的,这是签名中的String,这里是第一个。

这三个I表示三个额外的int的论点。

在结尾括号后,V表示返回类型void

签名是(String, int, int, int)返回void

This page包含每个符号含义的列表。

+0

这是非常有益的,非常感谢。 –

2

它正在寻找构造函数(String, int, int, int)
V意味着是void。构造函数返回void,这是签名结束时V的原因。

(Ljava/lang/String;III)V

Ljava/lang/String; (L fully-qualified-class ;)

III (int,int,int)

V -> return type void

此链接可以帮助你types

For example, the Java method: 

long f (int n, String s, int[] arr); 
has the following type signature: 

(ILjava/lang/String;[I)J