bytecode2bug.groovy

来自「Groovy动态语言 运行在JVM中的动态语言 可以方便的处理业务逻辑变化大的业」· GROOVY 代码 · 共 53 行

GROOVY
53
字号
/**
 * @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]
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?