1

突然发现我可以写了

class Person {
     def String name
}

我的问题是 - 上面提供的代码和经典代码有什么区别:

class Person {
   String name
}

为什么第一种形式甚至存在?

4

1 回答 1

4

没有区别。添加def到类型定义的开头没有任何作用。但是,解析器允许这样做。

检查此类内容的一种方法是启动 groovyConsole,然后运行 ​​AST 浏览器(用于脚本)

class Person {
     def String name
}

显示:

public class Person extends java.lang.Object { 

    private java.lang.String name 

}
于 2012-11-13T20:42:53.097 回答