【问题标题】:Missing Property Exception缺少属性异常
【发布时间】:2015-07-02 19:38:50
【问题描述】:

我是 groovy 的新手,我创建了一个包含一些常量的 java 类。

public class test{
     public static final constant1 ="hello"
     }

现在在我的 groovy 代码中,我只想将这个常量放在一个映射中。

  Map<String, String> map1 = new HashMap();
  map1.put("hello", test.constant1);

我收到一个 groovy.lang.MissingPropertyException 错误,提示没有此类属性:测试类。

这个错误说明了什么?

【问题讨论】:

  • import课堂测试了吗?
  • 是的,我做了导入类测试
  • 请粘贴一个最低限度的完整工作示例 - 以便我们能够重现该异常。此外,请使用错误和堆栈跟踪的确切文本更新问题。
  • 将类名大写通常是最佳实践,我怀疑这可能是您的问题。在尝试访问 test.constant1 时,在 groovy shell 中运行您的示例会导致 unknown property: test

标签: java groovy


【解决方案1】:

奇怪的是,与 Java 不同,groovy 很难解析小写的类名。 Relevant mailing list 和这个Jira

问题的关键: 与编译器相关,特别是在生成不含歧义的语法时,因为变量名、类名和方法名都可以共享相同的上下文。 Groovy 似乎依赖于以大写字母开头的类或类型的传统 Java 约定来减少歧义。

所以在“测试”中将“t”大写,你应该去参加比赛了!多么愚蠢的错误

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-03
    • 1970-01-01
    • 2016-02-09
    • 1970-01-01
    • 2010-10-17
    • 2020-01-05
    • 2021-02-12
    相关资源
    最近更新 更多