Groovy Tip 11 GDK的Object扩展方法
GDK对Java的Object类做了很多的扩展,但这些方法主要用于集合类和其他的组合类对象。其中,最著名的就是each方法,each方法在这里不再介绍,但其他一些方法也会比较常用。
1. 方法any
是指只要集合类对象中的任何一个元素符合闭包的条件,就返回true。如:
def
list = [
23
,
21
,
2
,
35
,
42
,
32
,
1
,
9
,
234
,
34
]
println
list.
any
{
it>
100
}
结果为:
true
def
list = [
23
,
21
,
2
,
35
,
42
,
32
,
1
,
9
,
234
,
34
]
println
list.
any
{
def
result = it/
3
result>
100
}
结果为:
false
2. 方法collect
是一个集合类对象元素收集方法,将集合类对象中所有元素作闭包的运算后组成一个新的集合类对象返回。如:
def
list = [
23
,
21
,
2
,
35
,
42
,
32
,
1
,
9
,
234
,
34
]
def
results = list.
collect
{
it*
2
}
println
results
结果为:
[46, 42, 4, 70, 84, 64, 2, 18, 468, 68]
3. 方法every
是指如果集合类对象中所有的元素都满足闭包条件,则返回true;否则,只要有一个元素不满足闭包条件,就返回false。
def
list = [
23
,
21
,
2
,
35
,
42
,
32
,
1
,
9
,
234
,
34
]
println
list.
every
{
it>
2
}
结果为:
false
def
list = [
23
,
21
,
2
,
35
,
42
,
32
,
1
,
9
,
234
,
34
]
println
list.
every
{
it>
0
}
结果为:
true
4. 方法findAll
将集合类对象中所有满足闭包条件的元素组成一个新的集合类对象返回。如:
def
list = [
23
,
21
,
2
,
35
,
42
,
32
,
1
,
9
,
234
,
34
]
def
results = list.
findAll
{
it>
40
}
println
results
结果为:
[42, 234]