0

以下 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
4

1 回答 1

0

事实证明,唯一的区别是第一个中的类名以小写字母开头,而第二个中的类名以大写字母开头。这里有一些讨论,但很难找到很多关于这个问题的好信息。我决定发布这篇文章是因为我正在拼命(不是字面意思)试图弄清楚为什么我的代码(类名的第一个字母为小写)无法编译,也许其他人可能有这个问题。

如果其他人有更好的链接指向关于该问题的更完整/清晰的讨论,请发布!

于 2013-03-15T17:10:15.973 回答