public long aaaa(){
}
public int aaaa(){
}
接下來,就來解釋壹下,當程序出現NoSuchMethodException時,JVM為我們提供的異常信息究竟是什麽意思。首先我們先看幾個方法以及他們的方法簽名:
public void test1(){} test1()V
public void test2(String str) test2(Ljava/lang/String;)V
public int test3(){} test3()I
從以上三個例子,我們就可以很簡單的看出壹些小小的規律:
JVM為我們提供的方法簽名實際上是由方法名(上文的例子為了簡單沒有寫出全類名)、形參列表、返回值三部分構成的,基本形式就是:
全類名.方法名(形參數據類型列表)返回值數據類型
我們知道了JVM提供的方法簽名的結構之後還是不夠,因為JVM是並沒有特別明確的將數據類型寫出來,而是提供了特殊的表示法,下表就是對特殊表示字符、字母與對應數據類型的關系:
Java方法簽名中特殊字符/字母含義
特殊字符 數據類型 特殊說明
V void 壹般用於表示方法的返回值
Z boolean
B byte
C char
S short
I int
J long
F float
D double
[ 數組 以[開頭,配合其他的特殊字符,表示對應數據類型的數組,幾個[表示幾維數組
L全類名; 引用類型 以L開頭、;結尾,中間是引用類型的全類名