Groovy中的保留类名

Groovy中的保留类名,groovy,Groovy,如果我有一个名为Character.groovy的类(没有显式构造函数)并尝试实例化它,我会收到一条消息,上面说: groovy.lang.GroovyRuntimeException: Could not find matching constructor for: java.lang.Character() 但是如果我将类名更改为Characterr.groovy,那么我就能够实例化一个对象并按预期使用它。那么,是否有我不能在Groovy类中使用的保留字?如果是这样,为什么角色是其中之一?

如果我有一个名为Character.groovy的类(没有显式构造函数)并尝试实例化它,我会收到一条消息,上面说:

groovy.lang.GroovyRuntimeException: Could not find matching constructor for: java.lang.Character()
但是如果我将类名更改为Characterr.groovy,那么我就能够实例化一个对象并按预期使用它。那么,是否有我不能在Groovy类中使用的保留字?如果是这样,为什么角色是其中之一?

这些是保留的关键字

我相信Character是java中的一个对象包装类,这就是为什么不能使用它的原因。不能使用java中自动包含的java类的任何名称 这些是保留的关键字


我相信Character是java中的一个对象包装类,这就是为什么不能使用它的原因。您不能使用java中自动包含的java类的任何名称。它不是保留的类名,但已经有一个具有该名称的类(
java.lang.Character
)在java中自动导入包
java.lang
时导入

这种情况随时可能发生,特别是如果您是java开发人员,不习惯groovy为您自动导入
java.io
包等(例如
文件
)(另请参阅)

有三种解决方法:

  • java方式:用全名(即包和类名)对类进行寻址。e、 g.
    org.myrpg.Character

  • groovy方法:使用新名称导入类。e、 g.
    导入org.myrgp.Character作为RPGChar
    ,然后使用
    RPGChar

  • 禅宗之道:通常情况下,只是简单地重命名你的类是不值得的。如果您有一次被这个问题绊倒,那么您再次被这个问题绊倒的可能性非常高,只有像
    @CompileStatic
    或IDE这样的东西才会在编译时或编写时注意到这一点


它不是保留的类名,但已经有一个具有该名称的类(
java.lang.Character
)在java中自动导入包
java.lang
时导入

这种情况随时可能发生,特别是如果您是java开发人员,不习惯groovy为您自动导入
java.io
包等(例如
文件
)(另请参阅)

有三种解决方法:

  • java方式:用全名(即包和类名)对类进行寻址。e、 g.
    org.myrpg.Character

  • groovy方法:使用新名称导入类。e、 g.
    导入org.myrgp.Character作为RPGChar
    ,然后使用
    RPGChar

  • 禅宗之道:通常情况下,只是简单地重命名你的类是不值得的。如果您有一次被这个问题绊倒,那么您再次被这个问题绊倒的可能性非常高,只有像
    @CompileStatic
    或IDE这样的东西才会在编译时或编写时注意到这一点


谢谢Joe,我正在使用的一定是Java字符包装器类。谢谢Joe,我正在使用的一定是Java字符包装器类。