【问题标题】:"def Type" declarations in groovy classesgroovy 类中的“def Type”声明
【发布时间】:2012-11-02 07:51:17
【问题描述】:

突然发现自己可以写了

class Person {
     def String name
}

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

class Person {
   String name
}

为什么第一种形式存在?

【问题讨论】:

    标签: groovy


    【解决方案1】:

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

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

    class Person {
         def String name
    }
    

    演出:

    public class Person extends java.lang.Object { 
    
        private java.lang.String name 
    
    }
    

    【讨论】:

    • hm,我觉得解析器允许这样做很奇怪,但非常感谢你教我在这种情况下使用 AST 浏览器。
    • @shabunc 不用担心,AST 浏览器有时非常方便查看正在发生的事情 :-) 你可能知道这一切,但 this page 可能会感兴趣
    猜你喜欢
    • 2010-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    • 2010-09-16
    • 1970-01-01
    • 2013-04-13
    相关资源
    最近更新 更多