Groovy / Gremlin类命名方案(需要大写字母)

时间:2013-03-15 17:10:16

标签: groovy gremlin

以下Groovy / Gremlin片段之间的区别是什么? (均保存为* .groovy文件并使用./gremlin.sh -e [filename].groovy运行)

class user
{
    String username

    static void main(String[] args)
    {
        user mtm = new user()
        mtm.username = "MuffinTheMan"
        println mtm.username
    }
}

class User
{
    String username

    static void main(String[] args)
    {
        User mtm = new User()
        mtm.username = "MuffinTheMan"
        println mtm.username
    }
}

第一个给出了与此类似的3个编译错误:

org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
Script1.groovy: 7: Apparent variable 'mtm' was found in a static scope but doesn't 
refer to a local variable, static field or class. Possible causes:
You attempted to reference a variable in the binding or an instance variable from
a static context.
You misspelled a classname or statically imported field. Please check the spelling.
You attempted to use a method 'mtm' but left out brackets in a place not allowed
by the grammar.
@ line 7, column 14.
user mtm = new user()

第二个编译并运行得很好并输出:

MuffinTheMan

1 个答案:

答案 0 :(得分:0)

事实证明唯一的区别是第一个中的类名以小写字母开头,而第二个中的类名以大写字母开头。有一些讨论here,但很难在这个问题上找到很多好的信息。我决定发布这个,因为我正在敲打墙(不是字面意思)试图找出为什么我的代码(类名有小写的第一个字母)不能编译,也许其他人可能有这个问题。

如果其他人有更好的链接来更全面/清晰地讨论该问题,请发布它!