2012-03-19 44 views
0

在JSNI實例從JavaScript調用Java方法,我們WIRTE這JSNI(從JavaScript到Java調用)

  $wnd.testJSNI= 
     @com.jsni.client 
     .HelloJSNI::testJSNI(Ljava/lang/String;)(test); 

我揣摩,但could'nt找到我們正是通過Ljava /朗意思/串?我們是否一定會通過這些論點?

回答

3

Ljava/lang/String;告訴GWT該方法需要一個String參數,該參數將作爲示例代碼中的test值傳入。

一般來說,在JSNI方法中,您需要告訴GWT參數類型是什麼,或者您可以使用快捷方式(*)告訴GWT自己弄清楚。就我所見,這在大多數情況下都可行。所以,你的代碼也可以寫成:。

var test = 'This is my test string'; 
$wnd.testJSNI = @com.jsni.client.HelloJSNI::testJSNI(*)(test); 
-1

這Ljava /朗/字符串;」格式看起來像JNI它被用來形容,文本,數據類型,你可以閱讀更多here

+0

這不是JNI,它是JSNI,它是GWT特定的。 – 2012-03-19 16:03:58

+0

我明白了,但是這種格式是來自JNI,它處理跨語言數據類型,我猜他們正在重複使用相同的術語JSNI,它正在做同樣的事情(從另一種語言的一種語言調用代碼),並且需要知道你發送了什麼數據類型。 – CodeChimp 2012-03-19 18:55:52

+0

表示同意,JNI在引擎中使用,並且這些類型正在爲JVM聲明。 1。 – 2012-03-19 22:57:18