Ant*_*lov 1 javascript gwt jsni
我有一个班级,例如:
public class Person {
private String name;
public Person(String name) {
this.name = name;
}
public void sayName() {
System.out.println(name);
}
}
Run Code Online (Sandbox Code Playgroud)
如果我调用这样的方法(或者我的无知或错误),它会起作用吗:
public native void someMethod (Person person) /*-{
person.sayName();
}-*/;
Run Code Online (Sandbox Code Playgroud)
语法是:
[instance-expr.]@class-name::method-name(param-signature)(arguments)
Run Code Online (Sandbox Code Playgroud)
实例EXPR.:调用实例方法时必须存在,调用静态方法时必须不存在
class-name:是声明方法的类的完全限定名称(或其子类)
param-signature:是JNI类型签名中指定的内部Java方法签名,但没有方法返回类型的尾随签名,因为不需要选择重载
arguments:是传递给被调用方法的实际参数列表
这是JNI类型签名:
Type Signature Java Type
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
For example, the Java method:
long f (int n, String s, int[] arr);
has the following type signature:
(ILjava/lang/String;[I)J
Run Code Online (Sandbox Code Playgroud)
在你的情况下(没有参数)它将是:
public native void someMethod (Person person) /*-{
person.@your.package.name.client.Person::sayName()();
}-*/;
Run Code Online (Sandbox Code Playgroud)
替换your.package.name为真实的包名称.
| 归档时间: |
|
| 查看次数: |
804 次 |
| 最近记录: |