compiler-construction - Play Framework 类型 ... 已经定义

标签 compiler-construction types model playframework

when i try to run my Application it gives me following error:

Compilation error
The file /app/models/setting.java could not be compiled. Error raised is : The type Setting is already defined
  • 我只有一个文件“Setting.java”,它位于模型目录中
  • 文件名为“Setting.java”,而不是错误消息提示的“setting.java”
  • 我不包含任何游戏模块

我在 Windows 上运行游戏。有没有可能是 play 有 windows 不区分大小写的问题?所以它会首先尝试编译 models/Setting.java 然后再编译 models/setting.java ??

还有什么可能是造成这种奇怪行为的原因?

/编辑: 因为我在这里写了这个问题,所以我没有在我的 Play 应用程序中编辑任何东西,也没有重新启动它。现在我只是刷新了页面,同样的错误又出现了——但是是另一个模型!!

The file /app/models/staticsite.java could not be compiled. Error raised is : The type Staticsite is already defined

/编辑2: 在浏览器中刷新几次页面后出现此错误:

The file /app/models/setting.java could not be compiled. Error raised is : The public type Setting must be defined in its own file

文件名为“Setting.java”,类名为 Setting

最佳答案

当问题在所提到的类之外时,可以引发“类型已定义”异常。如果您的类名匹配(区分大小写)并且它在自己的文件中定义,那么您的下一步是找出最近更改了哪些引用此类的代码。对我来说,问题是我的文件“utils.Utils.java”已通过“import utils.Utils;”导入到另一个文件中。当我在代码中引用“utils.Utils.someMethod()”时,这真的让编译器感到困惑。我将行更改为“Utils.someMethod()”,异常消失了。

我可能应该想出一个更好的命名方案。 :/

关于compiler-construction - Play Framework 类型 ... 已经定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8301490/

相关文章:

ruby - Sequel::Model 中的单表继承(Ruby ORM)

r - 是否有可能在 R 中精简 GBM 模型?

c++ - 谁决定任何数据类型或结构的大小(取决于 32 位或 64 位)?

c++ - 使用 C++ 编译器设置 MATLAB

C#:无法将类型 A 转换为类型 B,其中 A = B

.net - 为什么 .NET Boolean 有 TrueLiteral 和 TrueString?

compiler-construction - 如何开始编写翻译器?可能吗

c - Windows 中有等效的 gcc 吗?

java - 如何实现枚举类型的某些方法

java - OneToMany 关系和使用 Play Framework 保存表单