Groovy动态语言 运行在JVM中的动态语言 可以方便的处理业务逻辑变化大的业务
源代码在线查看: bytecode2bug.groovy
/**
* @version $Revision: 2284 $
*/
class Bytecode2Bug extends GroovyTestCase {
Integer count = 0
void testBytecodeBug() {
getCollection().each { count += it }
}
void testTedsBytecodeBug() {
//doTest(getCollection())
def a = [1, 2, 3, 4]
doTest(a)
}
void doTest(args) {
def m = [:]
def i = 1
args.each { m.put(it, i++) }
assert m[1] == 1
assert m[2] == 2
assert m[3] == 3
assert m[4] == 4
println("created: ${m}")
assert i == 5
}
void testTedsBytecode2Bug() {
def m = [:]
def i = 1
getCollection().each { m.put(it, i++) }
assert m[1] == 1
assert m[2] == 2
assert m[3] == 3
assert m[4] == 4
println("created: ${m}")
assert i == 5
}
def getCollection() {
[1, 2, 3, 4]
}
}