【发布时间】:2012-11-26 15:23:53
【问题描述】:
在我的应用程序中,有这行代码引起了麻烦:
public class DisplayListing<R extends Listing<R, L>, L extends Listing<R, L>.Loader> extends SherlockListFragment { ... }
使用 Eclipse 一切正常。但是在切换到 IntelliJ IDEA 之后会弹出错误:
范围内没有“com.app.Listing”类型的封闭实例。
这个错误信息是指Listing<R, L>.Loader部分(Loader是一个非静态类)。
当我转到 IntelliJ 的首选项并将编译器从 Javac 更改为 Eclipse 时,我又回到正题:应用程序将成功编译并再次运行。
但是指示错误的红色标记将保留(我想摆脱它)。所以我想知道我是否真的做错了什么,我的通用参数应该被修复,或者是否可以依赖 Eclipse 编译器并忽略错误?
【问题讨论】:
-
代码在我的 IntelliJ 中看起来不错。你用的是java 1.7吗?
-
我刚刚更新到 1.7 但问题依旧。除此之外,我在 javac 和 EJC 之间切换了几次,并使 IntelliJ 缓存无效,然后它突然用 javac 成功编译。即使提到的部分仍然被标记为错误...
-
Loader的可见度如何? -
如果 IntelliJ 的行为与 javac 不同,请在其站点上提交针对 IntelliJ 的错误报告。
标签: java generics intellij-idea inner-classes