2012-03-19 102 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