Java 如何使用泛型参数扩展非静态类?

Java 如何使用泛型参数扩展非静态类?,java,generics,intellij-idea,inner-classes,Java,Generics,Intellij Idea,Inner Classes,在我的应用程序中,有一行代码引起了问题: public class DisplayListing<R extends Listing<R, L>, L extends Listing<R, L>.Loader> extends SherlockListFragment { ... } public类DisplayListing扩展了SherlockListFragment{…} 使用Eclipse时,一切正常。但在切换到IntelliJ IDEA之后,错误

在我的应用程序中,有一行代码引起了问题:

public class DisplayListing<R extends Listing<R, L>, L extends Listing<R, L>.Loader> extends SherlockListFragment { ... }
public类DisplayListing扩展了SherlockListFragment{…}
使用Eclipse时,一切正常。但在切换到IntelliJ IDEA之后,错误就出现了:

作用域中没有“com.app.Listing”类型的封闭实例

此错误消息引用部件
列表。Loader
(Loader是一个非静态类)

当我转到IntelliJ的首选项并将编译器从Javac更改为Eclipse时,我又回到了工作中:应用程序将成功编译并再次运行


但表示错误的红色标记将保留(我想去掉它)。所以我想知道我是否真的做错了什么,我的泛型参数是否应该被修复,或者依赖Eclipse编译器忽略错误是否可以?

这是一个合法的错误,可以在没有任何复杂泛型的情况下复制它:

public class Foo<T extends Bar.Baz> {}

class Bar {
    class Baz {}
}

这是。您可以对该问题进行投票,以便给予更大的关注。

代码在my IntelliJ中看起来很好。您在使用Java1.7吗?我刚刚更新到1.7,但问题仍然存在。除此之外,我在javac和EJC之间切换了几次,并使IntelliJ缓存失效,突然它成功地用javac编译。即使提到的部分仍然标记为错误,
Loader
的可见性如何?如果IntelliJ的行为与javac不同,请在他们的网站上提交一份针对IntelliJ的错误报告。谢谢,太糟糕了,我在这两者之间添加了自己的报告。看起来我不能删除它。。。
public class Foo extends Bar.Baz {}