以下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
答案 0 :(得分:0)
事实证明唯一的区别是第一个中的类名以小写字母开头,而第二个中的类名以大写字母开头。有一些讨论here,但很难在这个问题上找到很多好的信息。我决定发布这个,因为我正在敲打墙(不是字面意思)试图找出为什么我的代码(类名有小写的第一个字母)不能编译,也许其他人可能有这个问题。
如果其他人有更好的链接来更全面/清晰地讨论该问题,请发布它!