【发布时间】:2013-07-05 19:16:38
【问题描述】:
我有一堂课:
public class Stuff implements OtherStuff<BigInteger>
使用 Eclipse 和 Maven 完美构建。但是,我真的希望这个类成为一个内部类,但是当我这样做时:
public class ParentStuff {
.
.
.
public static class Stuff implements OtherStuff<BigInteger>
Eclipse 构建完美,但现在 Maven 告诉我 OtherStuff 是一个无法识别的令牌。当 Stuff 是它自己的类时,它仍然在同一个项目中,所以 OtherStuff 必须可用,有什么想法吗?
我已经用 Java 1.7.0_05 + Maven 3.0.4 复制了这个,希望迁移到最新版本可以解决我的问题,Java jdk1.7.0_25 + Maven 3.0.5。我的解决方法是将 Stuff 实现为它自己的类,但它确实应该是一个内部类。
感谢您的宝贵时间。
更新:
我发现当我删除时:
import a.b.c.OtherStuff
并在我的内部类中使用合格的引用,Eclipse 和 Maven 都很高兴:
public class ParentStuff {
.
.
.
public static class Stuff implements a.b.c.OtherStuff<BigInteger>
虽然,我仍然认为导入应该可以正常工作。
【问题讨论】:
-
从某处导入
OtherStuff? -
您显示的代码没有问题。您需要提供更多详细信息。
-
类和内部类的OtherStuff导入相同
-
也许我应该改变这篇文章的标题,我认为这是一个 Maven 错误,在 Eclipse 中构建一切都很好,此外,我现在有相同的类和内部类项目,但编译器告诉我 OtherStuff 仅在内部类中无法识别。如果 OtherStuff 被类识别,为什么不被内部类识别?
-
请注意,Eclipse 有自己的编译器。它不使用 JDK 中的
javac来编译类,但 Maven 可以。我已经遇到了 Eclipse 编译正常的问题,而 Maven 上的javac没有。但它是复杂的泛型有界类型,早在 2007 年(在 JDK5 上)。你的情况看起来很简单,应该是别的。
标签: java eclipse maven compiler-errors inner-classes