我目前使用目标 1.7 和源 1.7 与使用内置 1.7 jdk 的 Eclipse Juno 的 Gradle 存在编译问题。
我有 5 节课:
Info.java --> 没有方法的接口(例如)
public interface Info { //... }
RealInfo.java --> 扩展 Info 接口的接口
public interface RealInfo extends Info { //... }
AbstractManager.java --> 具有“ getInfo() ”方法的抽象类
public abstract class AbstractManager<I extends Info>
{
public I info;
public I getInfo()
{
return this.info;
}
}
Manager.java --> 具有“ getInfo() ”方法的接口
public interface Manager
{
public <I extends Info> I getInfo();
}
DefaultManager.java --> 扩展AbstractManager
public class DefaultManager extends AbstractManager<RealInfo> implements Manager
{
//...
}
如果您将此代码复制/粘贴到 Eclipse 中,一切正常。没有编译错误。但是,如果我使用 Gradle 构建它,使用目标 jdk 1.7,编译器将不喜欢它:
DefaultManager.java:16: error: DefaultManager is not abstract and does not override abstract method <I>getInfo() in Manager
public class DefaultManager extends AbstractManager<RealInfo> implements Manager
^
where I is a type-variable:
I extends Info declared in method <I>getInfo()
你知道那里会发生什么吗?