5

当我使用 maven 编译但在 eclipse 中工作时出现编译错误。两者都使用相同的JDK:

java -version
java version "1.6.0_35"
Java(TM) SE Runtime Environment (build 1.6.0_35-b10)
Java HotSpot(TM) 64-Bit Server VM (build 20.10-b01, mixed mode)

mvn -version
Apache Maven 3.0.4
Maven home: /usr/share/maven
Java version: 1.6.0_35, vendor: Sun Microsystems Inc.
Java home: /usr/lib/jvm/jdk1.6.0_35/jre
Default locale: es_ES, platform encoding: UTF-8
OS name: "linux", version: "3.2.0-29-generic", arch: "amd64", family: "unix"

这是错误:

[ERROR] /blablabla.../myClass.java:    [78,107] inconvertible types
[ERROR] found   : java.util.Collection<java.lang.Object>
[ERROR] required: java.util.Collection<? extends org.springframework.integration.store.MessageGroup>
[ERROR] -> [Help 1]

这是代码(eclipse中没有编译错误):

Collection<? extends MessageGroup> collection = (Collection<? extends MessageGroup>) this.groupMap.values();

我知道这是一个非常递归的问题,我发现一些帖子问同样的问题,但似乎没有人有标准的修复。有人说这适用于不同的JDK版本。我已经用 1.6.0_30、1.6.0_31、1.6.0_32 和 1.6.0_35 进行了测试,但都失败了。

任何的想法?

谢谢

4

1 回答 1

14

我怀疑eclipse没有使用你认为的JDK。尝试使用类型擦除。

Collection<? extends MessageGroup> collection = 
        (Collection<? extends MessageGroup>)
                (Collection) this.groupMap.values();
于 2012-08-30T17:08:09.473 回答