一、-Dproperty=propertyValue
JVM在运行时需要用到某些属性,包括一些默认已设置好的属性,如file.encoding, file.separator, java.home, java.version等;-D就是用于配置系统属性
JAVA JDK文档中规定:-Dproperty=value用于设置系统属性;如果该属性值包含空格,则必须用双括号括起,长这样:-Dproperty=“some thing”
在JAVA代码中的任何一处地方,可以调用System.getProperty("key", "defaultValue")来获取到该属性值
在单元测试中,如果被测代码需要使用某系统属性值,则应该在before test中通过System.setProperty("key", "value")对该属性值进行配置
需要补充说明的是,通过-D对系统属性进行配置时,必须使得-D 紧邻java命令,否则不生效。
二、-Pproperty=propertyValue
通过gradle -Pproperty=propertyValue,可以gradle task设置动态工程属性。同时可以在gradle task中使用该属性:
someTask{
println property
}
三、print, printf, println
1. println: 除了打印出指定message,还有换行符;
2. printf:用于打印带格式的字符串(formatted string),也就是说不需要额外使用String.format()对字符串进行格式化;和C语言中的printf类似;
3. print:就是打印message, 木有什么特别的了
四、groovy中的一点语言现象
1. 使用Delegate。效果是:如果class A中包含field ClassB objectB,且使用@Delegate标注,则在class A中可以access到ClassB 中的任何field与method;
2. 函数式编程:方法可以接受closure(即代码块)作为参数;
3. 使用[]初始化一个List;如List<ClassA> classAs = [], 对list进行遍历:classAs.each{classA->some action}; 像list中加入某个元素:classAs << new ClassA()
4. 可以用string作为方法名;
5. 有上下文的概念;
class A {
int a1;
int a2;
}
A a = new A(); A.with{int b = a1; int c = a2};不需要使用int b = A.a1; int c = A.a2
朝花夕拾之April. 9th,布布扣,bubuko.com
原文:http://www.cnblogs.com/Garfield-yafei/p/3655018.html