GWT Arrays.asList 不适用于接口类型
GWT Arrays.asList not working on interface types
在 GWT 项目 (2.7.0) 上工作时,我遇到了一个非常奇怪的客户端代码行为。
以下代码抛出错误"SEVERE: (ReferenceError) : Ljava_io_Serializable_2_classLit_0_g$ is not definedcom.google.gwt.core.client.JavaScriptException: (ReferenceError) : Ljava_io_Serializable_2_classLit_0_g$ is not defined"。
使用具有接口类型的参数调用 Arrays.asList()
时发生错误。
这是预期的行为还是 GWT 错误?
// Working
Integer n1 = 1;
Arrays.asList(n1);
// Not working
Serializable n2 = 1;
Arrays.asList(n2);
嗯,Arrays.asList 的典型用法是
Object myObj = new Object();
List theList = Arrays.asList(new Object[] {myObj});
这在 GWT 中适用于任何类型的interface/class/enum。
编辑:我已经使用 GWT 2.5.1 对此进行了测试:
public class Foo implements EntryPoint {
public static interface MyInterface {
}
public static class MyObject implements MyInterface {
}
public void onModuleLoad() {
MyInterface myObject = new MyObject();
List<MyInterface> myList = Arrays.asList(myObject);
}
}
有没有可能是其他地方的问题?
GWT 2.7 的超级开发模式(以及 _g$
在你的 class 文字字段中,我认为这就是你正在使用的)已经观察到有其他类似的问题,但是编译后问题消失了。
如果这确实是您所看到的,则该问题似乎已在 2.8 中修复,尚未发布:https://groups.google.com/d/topic/google-web-toolkit/RzsjqX2gGd4/discussion
这种行为绝对不是预期的,但如果您可以确认它在为生产环境和 GWT 2.8 编译时可以正常工作,那么我们至少知道该错误已修复。
在 GWT 项目 (2.7.0) 上工作时,我遇到了一个非常奇怪的客户端代码行为。
以下代码抛出错误"SEVERE: (ReferenceError) : Ljava_io_Serializable_2_classLit_0_g$ is not definedcom.google.gwt.core.client.JavaScriptException: (ReferenceError) : Ljava_io_Serializable_2_classLit_0_g$ is not defined"。
使用具有接口类型的参数调用 Arrays.asList()
时发生错误。
这是预期的行为还是 GWT 错误?
// Working
Integer n1 = 1;
Arrays.asList(n1);
// Not working
Serializable n2 = 1;
Arrays.asList(n2);
嗯,Arrays.asList 的典型用法是
Object myObj = new Object();
List theList = Arrays.asList(new Object[] {myObj});
这在 GWT 中适用于任何类型的interface/class/enum。
编辑:我已经使用 GWT 2.5.1 对此进行了测试:
public class Foo implements EntryPoint {
public static interface MyInterface {
}
public static class MyObject implements MyInterface {
}
public void onModuleLoad() {
MyInterface myObject = new MyObject();
List<MyInterface> myList = Arrays.asList(myObject);
}
}
有没有可能是其他地方的问题?
GWT 2.7 的超级开发模式(以及 _g$
在你的 class 文字字段中,我认为这就是你正在使用的)已经观察到有其他类似的问题,但是编译后问题消失了。
如果这确实是您所看到的,则该问题似乎已在 2.8 中修复,尚未发布:https://groups.google.com/d/topic/google-web-toolkit/RzsjqX2gGd4/discussion
这种行为绝对不是预期的,但如果您可以确认它在为生产环境和 GWT 2.8 编译时可以正常工作,那么我们至少知道该错误已修复。