我有大约 55 个 Java 接口和 5 个抽象类。每个声明都使用相同的泛型参数集:它列出了大约 60 个声明,因此每个实现都知道彼此实现的特定类型,并在方法参数中替换此类型并根据需要返回。似乎这种(可能过度)使用泛型导致编译器挂起。编译器抛出 OutOfMemoryError,但似乎没有终止。
考虑到我的情况,包含这些声明中的一个的代码清单有点困难,但清单的一部分可能是可能的。接口声明通常指定大约五个方法的集合,但是在声明中使用泛型会将源模块的大小增加到大约一千行。
我的情况可能是编译器实际上进入无限循环的情况,还是应该给它更多内存?抛出 OutOfMemoryError 异常大约需要 20 分钟,所以我担心如果我只是将分配给编译器的内存增加一个因子,编译器会花费更长的时间来抛出异常。
我正在使用 NetBeans 作为我的编辑器环境,但在我启动 NetBeans 后,我一直在求助于运行 clean/build 脚本。我这样做是因为 NetBeans 在启动后开始检查我的代码语法时很快变得无响应。我正在使用 Ubuntu 10.4(我想 - 我是从 Windows 写的)。我求助于在 Ubuntu 环境中打开命令行,将 NetBeans 作为后台进程运行,检查输出并使用 gedit 更正任何源代码错误,杀死并重新启动 NetBeans。这似乎就足够了,直到我发现不再产生语法错误。我不知道如何从命令行运行 clean/build 脚本。
对不起,如果这个问题看起来含糊不清,但如果其他人可以帮助我,那么也许我可以更具体一点。
感谢您提供任何深思熟虑的建议。