type不接受泛型中的参数

时间:2015-04-14 18:59:29

标签: java generics

我有一个带有泛型参数的接口:

package com.lbv.itf;

public interface Segment<T extends Object> {...}

这是几年前编写的,在1.6中编译并内置到jar中,比如segment.jar

现在,我有一个使用segment.jar的新项目,在这个新项目中,我有一个实现此接口的类:

package com.lbv.impl; 

import com.lbv.itf.Segment;

public class TreeSegment implements Segment<Tree> {...}

在1.7中编译这个较新的类会出现此错误:

  

键入com.lbv.itf.Segment不接受参数

看起来很明显,Segment接口接受参数但不知何故,在编译较新的类时不可见。这是一个已知的JDK兼容性问题还是我缺少的东西?任何帮助都会有很大的帮助。

更新 它只适用于我编译较新的代码1.6 :(。在泛型类型参数上是否存在从1.6到1.7的兼容性问题?

我正在使用

  

Java 1.6 Update 45 64位

  

Java 1.7 Update 60 64位

1 个答案:

答案 0 :(得分:1)

这种情况已经发生,因为遗留代码是使用选项`

编译的
  

'目标= jsr14'

`它剥离了类型参数,以便生成的代码与旧的Java版本保持兼容。不幸的是,1.7已经停止支持这个标志,导致这个问题引起了我的注意。