2

如何将 Java 对象从 JavaScript 发送到 Java?LiveConnect 允许我们通过调用 applet 方法来获取 Java 对象。即我们可以在小程序中有以下方法:

public MyClass getMyClass() { return new MyClass(); }`

哪里MyClass是:

public class MyClass implements Serializable {
   private String a;
   private String b; //getters, setters
}

并在 JS 中使用以下方法访问此对象:

applet.getMyClass().someMethod();

但是我如何将对象从 JavaScript(我认为是 json 对象)传递给 java 方法(而不是作为 json 字符串)?即我想在applet方法中有这样的:

public void myMethod(MyClass var)

并从 JavaScript 调用此方法传递 type 的参数MyClass。如何MyClass在 JS 中构建对象?我希望 LiveConnect 自动从 JSON 转换为 Java 对象..

4

2 回答 2

2

我相信这应该给你一个关于如何去做的好主意。

import netscape.javascript.*;

public class MyClass implements Serializable {
public String a;
public String b;

    public JavaDog(JSObject o) {
        this.a= (String)o.getMember("a");
        this.b = (String)o.getMember("b");
    }
}

然后你使用new Packages.MyClass(yourJavaScriptObject)创建你想要传递给Java的对象。

更多信息在这里:

https://developer.mozilla.org/en-US/docs/JavaScript/Guide/LiveConnect_Overview

于 2012-12-02T09:23:08.707 回答
0

Java LiveConnect文档说:

当之前返回给 JavaScript 引擎的 Java 对象被传回给 Java 时,只需检查该对象与目标类型的赋值兼容性。此规则的唯一例外是自动转换为java.lang.String.

于 2012-11-30T12:06:05.493 回答