我有一个接受通用参数的接口:
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兼容性问题,还是我遗漏了什么?任何帮助都会有很大帮助。
UPDATE:只有当我编译更新的代码1.6:(.泛型类型参数从1.6到1.7是否存在兼容性问题?
我正在使用
Java 1.6更新45 64位
和
Java 1.7更新60 64位
之所以发生这种情况,是因为遗留代码是使用`选项编译的
'target=jsr14'
`去掉了类型参数,这样生成的代码将与旧的java版本保持兼容。不幸的是,1.7已经停止支持这个标志,导致了我遇到的问题。