1、杂学
package groovy
class Foo {
def static openFile(fileName) {
new FileInputStream(fileName)
}
def static foo(str) {
str?.reverse()
}
def static returnWhat() {
println "returnWhat() executed!"
this
}
public static void main(String[] args) {
/*
* 无需返回申明,自动返回最后出现的变量(条件语句中会返回空)
* 方法可以链式执行
*/
println returnWhat().returnWhat().returnWhat()
/* openFile方法不强制你抛出异常 */
try {
openFile("nonexistentfile" )
} catch(FileNotFoundException ex) {
println ex
}
/* 安全导航操作符?.只在对象不为空时调用 */
println foo('evil' )
println foo(null)
/* 闭包、循环方式 */
List lst = [1, 2, 3]
lst.each { print "$it " }
print "\n"
for(j in 5..9) {
print j + " "
}
print "\n"
10.upto 15, { print "$it " }
print "\n"
3.times { print "--\n" }
0.step(10, 2) { print "$it " }
/* 直接调用系统命令 */
print "\n"
println "java -version".execute().text
/* 操作符重载 */
lst<<4
println lst
}
}
输出:
returnWhat() executed!
returnWhat() executed!
returnWhat() executed!
class groovy.Foo
java.io.FileNotFoundException: nonexistentfile (系统找不到指定的文件。)
live
null
1 2 3
5 6 7 8 9
10 11 12 13 14 15
--
--
--
0 2 4 6 8
[1, 2, 3, 4]
二、对象与线程
package groovy
class Customer {
Integer id;
String name;
Date dob;
static void main(args) {
def customer = new Customer(id:1, name:"sunny", dob:new Date())
println "dob is $customer.dob!"
assert Byte.MAX_VALUE == 127
assert Byte.MIN_VALUE == -128
def i = 0, j = 0
Thread.start {
while(true) {
i++
if (i%1000 == 0 && i/1000 < 3 ) println 'S'
}
}
while(true) {
j++
if (j%1000 == 0 && i/1000 < 3 ) println 'M'
}
}
}
输出:
dob is Fri Jul 22 17:54:27 CST 2011!
M
S
M
S
M
三、文件操作
package groovy
class FileOperator {
public static void main(String[] args) {
def myFile = new File("C:\\ftnstat.stat")
def printFileLine = {println it}
myFile.eachLine( printFileLine )
}
}
输出:
MaxFileUploadParallelNum:0\MaxFileWaitingNum:0\SelectFileTimes:0\UploadFileNum:0\
MaxFileUploadParallelNum:0\MaxFileWaitingNum:0\SelectFileTimes:0\UploadFileNum:0\
MaxFileUploadParallelNum:0\MaxFileWaitingNum:0\SelectFileTimes:0\UploadFileNum:0\
MaxFileUploadParallelNum:0\MaxFileWaitingNum:0\SelectFileTimes:0\UploadFileNum:0\
MaxFileUploadParallelNum:0\MaxFileWaitingNum:0\SelectFileTimes:0\UploadFileNum:0\
四、数据库操作
package groovy
class SqlOperator {
public static void main(String[] args) {
def sql = groovy.sql.Sql.newInstance( "jdbc:oracle:thin:@192.168.0.201:1521:oracle9i",
"gz", "gz", "oracle.jdbc.driver.OracleDriver" )
def results = []
sql.eachRow("select * from acl_user", {
results<<it
println it.id + " -- ${it.name} "
})
println "size = "+results.size()
}
}
输出:
1227978 -- 钟润甜
1227982 -- 何毅永
792275 -- 赵清喆
1467305 -- 李沈藏
934266 -- 麦燕芬
1596070 -- 徐月平
1792352 -- 吴玉燕
788199 -- 冯晓红
1920836 -- 梁剑梅
1927141 -- 邬国威
size = 10
分享到:
相关推荐
在"robotium-example-master"项目中,通常会有一个简单的Hello World应用和对应的测试用例。测试用例可能会包含以下步骤: 1. 启动Hello World Activity。 2. 验证屏幕上显示的文本是否为"Hello, World!"。 3. 模拟...
groovy -e "println 'Hello World'" ``` This command demonstrates the simplicity and ease of use of Groovy for quick scripting tasks. **1.4.2 Using groovy Console** The `groovyConsole` is a GUI-based...
本篇将详细讲解Android Kotlin开发实例,包括如何配置环境,以及一个简单的“Hello World”示例。 首先,Kotlin是由JetBrains开发的一种静态类型编程语言,它的设计目标是提高开发效率,减少冗余代码,并提供强大的...
RubyOnWheels Toast模块,允许您使用...puts "Hello World!" # Prints to Toast's logger motor = Toast :: Motor . new :talon , :can , 1 # Creates a new Talon on the CAN Bus with ID 1 motor . set 0.4 # Set
##### Helloworld 示例 一个简单的 Gradle 构建脚本示例: ```groovy task hello { doLast { println 'Hello World!' } } ``` ##### 快捷的任务定义 使用闭包定义任务更加简洁: ```groovy task hello { doLast ...
在这个例子中,我们创建了一个`ActivityTestRule`,用于启动`MainActivity`,然后在测试方法中使用`onView`和`check`来验证文本“Hello world!”是否可见。 最后,要运行测试,你可以直接在Android Studio中选择...
Grails是一个全栈框架,它整合了Spring、Hibernate、Groovy on Grails(GORM)等成熟的技术,提供了MVC(模型-视图-控制器)架构,使得开发人员能够快速构建动态、数据库驱动的Web应用。 ### 2. Groovy语言 Groovy...
println "Hello, World!" } } ``` - **任务依赖**:通过 `dependsOn` 属性或方法来指定任务之间的依赖关系,例如: ```groovy task hello2(dependsOn: 'hello') { doLast { println "Hello again!" } } `...
Reactor 是一个基于 JVM 之上的异步应用基础库。为 Java 、Groovy 和其他 JVM 语言提供了构建基于事件和数据驱动应用的抽象库。...reactor.notify("parse", Fn.event("Hello World!")); 标签:Reactor
println "Hello, World!" } ``` 当运行`gradle myTask`时,这段代码会在配置阶段和执行阶段都执行,因为所有在任务块内的代码默认被视为配置代码。 2. 使用`doLast`来指定执行阶段的行为: ```groovy task my...
```groovy androidTestImplementation 'com.jayway.android.robotium:robotium-solo:6.3.2' ``` 2. **创建测试类**:新建一个继承自`ActivityInstrumentationTestCase2`的测试类,然后注入Solo实例。 3. **设置...
在这个例子中,服务器会在端口8080监听,并且如果收到GET请求到"/hello"的路径,它会返回"Hello, World!"。对于其他任何请求,它将返回404错误。 此外,NanoHttpd支持POST请求处理,可以通过`session.getFile()`...
<jaxws:endpoint id="helloWorld" implementor="com.example.HelloWorldServiceImpl" address="/HelloWorld"/> ``` #### 3.4 部署到Web服务器 - 将上述配置和实现打包成WAR文件,然后部署到Web服务器,如Tomcat...
它们允许开发者以较少的代码实现相同的功能,例如在Ruby中实现“Hello, World”只需要一行代码,而在Java中则需要编写完整的类结构。动态语言的类型检查是在运行时进行,这使得开发过程更为灵活。此外,Ruby等动态...
这个例子中,我们创建了一个监听8080端口的服务器,当访问根路径"/"时,返回"Hello, World!"。 **5. 高级特性** 除了基础的HTTP响应外,i-jetty-3.1还支持更复杂的特性,例如: - **静态文件服务**:可以配置服务器...