java - GWT JSNI 拆分方法错误

标签 java string gwt jsni

我正在开发一个 GWT 应用程序,并且正在获取一个包含选择查询结果的列表。此选择查询有行。每行的每个元素都通过“::”与前一个和下一个元素分隔。

我尝试使用 String.split 拆分它,但需要很长时间才能执行。我读到,目前(我正在使用 GWT 2.5.1),String.split 方法有很多 bug,有时几乎需要比 JSNI 方法多 x1000 倍的时间来执行;所以我采取了这种方法。

我正在使用的 JSNI 方法如下(我从同一站点获取):

public static final native String[] split(String string, String separator) /*-{
   return string.split(separator);
   }-*/;

但是现在,我收到此错误:

java.lang.ClassCastException:com.google.gwt.core.client.JavaScriptObject$ 无法转换为 [Ljava.lang.String;

即使我在最后写了一个 .toString() ,错误也会变成以下内容:

java.lang.ClassCastException: java.lang.String 无法转换为 [Ljava.lang.String;

我这样调用这个方法:

String[] temp = split(str, "::");

为了得到temp内部分割的结果,以供以后使用。

str 它是一个包含 iterator.next() 的字符串。

您能告诉我我可能遗漏或误解了什么吗?

预先感谢您的宝贵时间,

亲切的问候,

最佳答案

JavaScript 列表不是 Java 数组。虽然 GWT 使用 JavaScript 列表来模拟 Java 数组,但这并不意味着它们是相同的东西。

相反,您应该从方法中返回 JsArrayString,并以这种方式使用它,或者仅使用返回真正 Java 数组的 Java 版本的 String.split。

关于java - GWT JSNI 拆分方法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20230300/

相关文章:

java - 如何根据数据库中存在的行数创建 jCheckBox?

java - 在 Java 中使用 .repeat() 方法时找不到符号(代码在 Netbeans 中运行)

php - 从变量名创建对象

web-services - GWT 富 Internet 应用程序 (RIA) 和 REST HATEOAS - 它们的兼容性如何?

java - 如何确定我的服务器可以支持特定应用程序的用户数量

java - Hibernate:实体内部类没有默认构造函数

java - Spark 告诉我功能列是错误的

java - 每次限制字符串创建对象

java - 使用snakeYaml解析字符串数组

java - gwt 列表框执行我的处理程序