Android知识要点整理(15)----Gradle 之Groovy语言基础
来源:互联网 发布:网络摄像头ip查找器app 编辑:程序博客网 时间:2024/04/29 08:45
Android项目使用Gradle作为构建框架,Gradle又是以Groovy为脚本语言。所以学习Gradle之前需要先熟悉Groovy脚本语言。
Groovy是基于Java语言的脚本语言,所以它的语法和Java非常相似,但是具有比java更好的灵活性。下面就列举一些和Java的主要区别。
1.Groovy默认引入如下的package:
java.io.*
java.lang.*
java.math.BigDecimal
java.math.BigInteger
java.net.*
java.util.*
groovy.lang.*
groovy.util.*
2.方法重载
Groovy的方法重载是在运行时决定使用哪个方法,不同于java在编译时就确定了使用的方法。
例如:
int method(String arg) { return 1;}int method(Object arg) { return 2;}Object o = "Object";int result = method(o);
在Java中,result的值会等于2,而在Groovy中,result的值会等于1.
3.数组初始化
Groovy中{}
用于定义闭包结构。所以在初始化数组时应该如下:
int[] array = [ 1, 2, 3]
4.访问权限
在Groovy中,缺省的访问修饰符不代表在package范围类可被访问,而是表示一个属性及其对应的Getter和Setter方法。当然,可以通过使用@PackageScope
来定义包内可访问的成员对象:
class Person { @PackageScope String name}
5.ARM 代码块
Grroovy不支持Java7的ARM(Automatic Resources Management)功能,但是它提供多个基于闭包的方法,用来实现同样的功能。例如:
Path file = Paths.get("/path/to/file");Charset charset = Charset.forName("UTF-8");try (BufferedReader reader = Files.newBufferedReader(file, charset)) { String line; while ((line = reader.readLine()) != null) { System.out.println(line); }} catch (IOException e) { e.printStackTrace();}
在Groovy中可以这样写:
new File('/path/to/file').eachLine('UTF-8') { println it}
或者
new File('/path/to/file').withReader('UTF-8') { reader -> reader.eachLine { println it }}
6.非静态内部类
在java中我们可以这样创建非静态内部类:
public class Y { public class X {} public X foo() { return new X(); } public static X createX(Y y) { return y.new X(); }}
然后在Groovy中,y.new x()
是非法的,我们必须使用new X(y)
.
7.Lambdas 和 Closure
Groovy中不支持Lambdas,但是Closure有着类似的功能。
8 ==
的意义
Groovy中,==
表示 a.compare(b)
==0,如果它们实现了Compareable接口,否则表示a.equals(b)
.要判断a是否是b,要使用a.is(b)
。
9 其他关键字
Groovy中,如下的字符都属于关键字:
- as
- def
- trait
- in
TO BE CONTINUED
- Android知识要点整理(15)----Gradle 之Groovy语言基础
- Android知识要点整理(16)----Gradle 之项目结构
- Android知识要点整理(17)----Gradle 之自定义构建
- Android知识要点整理(18)----Gradle 之依赖管理
- Android知识要点整理(19)----Gradle 之构建变体
- Android知识要点整理(20)----Gradle 之多模块管理
- Android知识要点整理(21)----Gradle 之创建任务和插件
- Gradle构建之Groovy语言基础
- Gradle系列之Groovy基础
- 拥抱 Android Studio 之三:溯源,Groovy 与 Gradle 基础
- 拥抱 Android Studio 之三:溯源,Groovy 与 Gradle 基础
- Android 知识要点整理(3)----AndroidManifest
- Gradle基础——Groovy语言
- gradle 知识(2) -- groovy语法
- Gradle 入门之 Groovy 语言详解
- Groovy 和 Gradle (Android Studio)基础
- Android知识要点整理(1)---- Android 2D动画
- Android知识要点整理(2)----- 应用资源
- 优化CSS
- Android 四大组件 —— 活动(活动的隐式跳转)
- Leetcode-4. Median of Two Sorted Arrays
- 启发孩子的几个小问题1
- JavaWeb应用中使用JavaMail发送邮件
- Android知识要点整理(15)----Gradle 之Groovy语言基础
- 数据结构复习笔记(Data Structures & Algorithms in Java, 4th) --Memory Management (Heap & Stack)
- csdn待改进点之19------>为什么这里的功能不是取消收藏? 这种体验让人抓狂
- Android 四大组件 —— 活动(使用Intent 实现活动的显示跳转)
- 列表和元组
- 《人性的弱点》卡耐基
- 产生死锁的原因
- Android 项目在Eclipse中的目录结构
- Python字符串的encode与decode研究心得——解决乱码问题