我们继承了一个仍然在 JDK 7 上运行的旧应用程序。我们想使用 JDK 8,但由于某些奇怪的原因,在使用 JDK 8 构建时测试不再起作用。它开始抱怨找不到某些匿名类:
java.lang.NoClassDefFoundError: com/some/package/client/widget/SomeClass$1
我在某处读到你不应该在 GWT 和 JDK 8 中使用匿名类。我尝试改变它,但它仍然一直抱怨它找不到类:-(。
Collections.sort(objects, new Comparator<ClientObject>() {
public int compare(ClientObject object1, ClientObject object2) {
int result = 0;
if ((object1 != null) && (object2 != null)) {
result = object1.getTranslation().compareTo(object2.getTranslation());
}
return result;
}
});
上面的代码块似乎是罪魁祸首。但不知道为什么。我也尝试升级到较新版本的 GWT,但这会在测试期间导致其他 NoClassDefFoundError 错误。有谁知道我们做错了什么?
对于测试用例,我们使用 gwt-test-utils。