Groovy中文件和编译后的Java 字节码中类的对应关系(翻译)
来源:互联网 发布:魔兽争霸3 1.24e mac 编辑:程序博客网 时间:2024/06/04 18:32
在Groovy中类和文件的对应关系并不像Java中那么固定(Java中一个文件只能有一个声明为public的类和其他一些非公共的类和内嵌类) 。在同一个groovy文件中可以包含多个public的类定义。具体规则如下:
- 如果在一个groovy文件中没有任何类定义,它将被当做script来处理,也就意味着这个文件将被透明的转换为一个Script类型的类,这个自动转换得到的类将使用原始的groovy文件名(去掉扩展名,没有包名,在default包中)作为类的名字。groovy文件的内容被打包进run方法,另外在新产生的类中被加入一个main方法以进行外部执行该脚本。
- 如果在groovy文件正好有一个类的定义,并且该类的名字与文件名称相同,那么这就和java中的类与文件的一一对应关系相同
- 在一个groovy文件中可以包含多个不同可见性的类定义,并且没有强制性的要求其中有一个类的类名与文件名相同。groovyc编译器会很乐于把该文件中定义的所有的类都编译成*.class文件。如果你希望能够直接调用这个groovy script,比如说在使用groovy命令行或者在某个IDE中执行,那么你应该在该文件中的第一个类中定义一个main方法
- 在一个groovy文件中可以混合类的定义和脚本定义。在这种情况下,那些脚本代码将会变成直接调用的主类,所以在这种情况下你不应该再定义一个和文件同名的类
在没有经过明确的编译过程即执行时,groovy将通过文件名来查找类。在这种情况下,名称将会很重要。Groovy只能找到那些和文件名匹配的类。在找到这种名字匹配的类时,找到的文件中定义的其他类将被解析并变得对groovy可见。
原文:Groovy in Action (page:190 )
- Groovy中文件和编译后的Java 字节码中类的对应关系(翻译)
- hibernate 和 java 数据类型的对应关系
- java 字符和字节的关系
- sys文件系统中文件、文件夹与kobject、kset、kobj_type的对应关系
- Keil编译后的Code,RO,RW,ZI分别表示什么以及和芯片Flash、SRAM的对应关系
- Web工程和编译结果的结构对应关系
- java中文件的上传和下载
- Java编译后的字节码笔记--草稿
- android 中的编译选项的对应关系
- Jni中C++和Java的数据类型的对应关系
- Jni中C++和Java的数据类型的对应关系
- Jni中C++和Java的数据类型的对应关系
- JDBC的版本和java sdk的对应关系
- 字和字节的关系
- Java| Java中字节Byte和位Bit的关系
- UTF-8 字节数,及首字节的对应关系
- Java中数据类型对应的字节长度
- Java中数据类型对应的字节长度
- 基于MATLAB的声音信号频谱分析仪设计
- SQL Server 存储过程的经典分页
- System.IO.File类和System.IO.FileInfo类
- 遗传算法中的选择算子
- .NET开发人员应该下载的十个必备工具
- Groovy中文件和编译后的Java 字节码中类的对应关系(翻译)
- 内存字节对齐
- 内存对齐和#pragma pack(n)
- Global文件的作用与属性
- 发布ASP.NET应用程序时的10个好习惯
- 由于jar包路径问题引起的无法编译类的解决办法
- 清除用友任务明细
- kmalloc VS kmem_cache_alloc
- 操作系统使用28个超级技巧