我正在尝试将 Guava 12.0 的 FluentIterable 与 GWT 2.0.3 一起使用,如下所示:
import com.google.common.collect.FluentIterable;
class FooPresenter {
// snip
private List<NullSafeCheckBox> asCheckboxes() {
return FluentIterable.from(getDisplay().getMetricInputs())
.transform(new Function<HasValueChangeHandlers<Boolean>, NullSafeCheckBox>() {
@Override
public NullSafeCheckBox apply(@Nullable HasValueChangeHandlers<Boolean> checkbox) {
return (NullSafeCheckBox) checkbox;
}
})
.toImmutableList();
}
}
但是,当我在开发模式下运行 GWT 时,尝试加载第一个模块时出现以下错误:
DEBUG: Validating newly compiled units
ERROR: Errors in 'jar:file:/home/josh/.m2/repository/com/google/guava/guava-gwt/12.0/guava-gwt-12.0.jar!/com/google/common/math/super/com/google/common/math/LongMath.java'
ERROR: Line 23: The import java.math cannot be resolved
我的 pom.xml 看起来像这样:
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>12.0</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava-gwt</artifactId>
<version>12.0</version>
</dependency>
我的 Application.gwt.xml 像这样在 Guava 中糟透了:
<!-- Guava -->
<inherits name="com.google.common.collect.Collect"/>
更新
按照Arcadian 的回答中的建议,我将 gwt-math 添加到我的 pom.xml 和 Application.gwt.xml 中:
<!-- Guava -->
<inherits name="com.google.common.collect.Collect"/>
<inherits name="com.googlecode.gwt.math.Math" />
现在运行托管模式时出现此错误:
DEBUG: Validating newly compiled units
WARN: Warnings in 'jar:file:/home/josh/.m2/repository/videoplaza-third-party/gwt-incubator/20100204-r1747/gwt-incubator-20100204-r1747.jar!/com/google/gwt/widgetideas/client/impl/GlassPanelImpl.java'
WARN: Line 30: Referencing deprecated class 'com.google.gwt.user.client.impl.DocumentRootImpl'
WARN: Line 38: Referencing deprecated class 'com.google.gwt.user.client.impl.DocumentRootImpl'
ERROR: Errors in 'jar:file:/home/josh/.m2/repository/com/google/guava/guava-gwt/12.0/guava-gwt-12.0.jar!/com/google/common/primitives/UnsignedLong.java'
ERROR: Line 77: The method bitLength() is undefined for the type BigInteger
ERROR: Line 79: The method longValue() is undefined for the type BigInteger
ERROR: Line 200: The method valueOf(long) is undefined for the type BigInteger
ERROR: Line 202: The method setBit(int) is undefined for the type BigInteger