constructorthiscallbug.groovy

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

GROOVY
63
字号
/**
 * ConstructorThisCallBug.groovy
 *
 *     Test Script for the Jira issue: GROOVY-994.
 *
 * @author    Pilho Kim
 * @date      2005.08.05.06.21
 */

package groovy.bugs

public class ConstructorThisCallBug extends GroovyTestCase {
    public void testCallA() {
        println "Testing for a class without call()"
        def a1 = new ConstructorCallA("foo") 
        def a2 = new ConstructorCallA(9) 
        def a3 = new ConstructorCallA() 
    }

    void testCallB() {
        println "Testing for a class with call()"
        def b1 = new ConstructorCallB('bar') 
        def b2 = new ConstructorCallB(9) 
        def b3 = new ConstructorCallB() 
    }
}

public class ConstructorCallA { 
    public ConstructorCallA() {
        this(19)               // call another constructor
        println "(1) no argument consructor"
    } 

    public ConstructorCallA(String a) {
        println "(2) String value a = $a"
    } 

    public ConstructorCallA(int a) {
        this("" + (a*a))       // call another constructor
        println "(3) int value a = $a"
    } 
} 

public class ConstructorCallB { 
    public ConstructorCallB() {
        println '1: no argument consructor'
        this(19)              // call the method call()
    } 

    public ConstructorCallB(String b) {
        println """2: String value b = $b"""
    } 

    public ConstructorCallB(int b) {
        println """3: int value b = $b"""
        this('' + (b + b))     // call the method call()
    } 

    void call(Object o) {
        println "Hello, $o"
    } 
} 

⌨️ 快捷键说明

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