Groovy int vs整数函数解析

时间:2016-10-28 19:15:06

标签: groovy

我最近开始学习Groovy并发现不是一种自然的行为。

class BasicRouter {
    int method_(first){
        return 1;
    }
    int method_(int first){
        return 2;
    }
    int method_(short second){
        return 3;
    }
    int method_(Integer first){
        return 4;
    }
}
br = new BasicRouter()
int x = 1
assert br.method_(x) == 4
assert br.method_((int)29) == 2

为什么在第一种情况下我们传递一个int类型的变量,我们得到4而不是2? 我希望将调用方法int method_(int)

感谢。

1 个答案:

答案 0 :(得分:3)

答案就在这里 - http://docs.groovy-lang.org/latest/html/documentation/core-differences-java.html#_primitives_and_wrappers

Groovy将对象用于所有内容

如果您使用CompileStatic

,则会更改
@groovy.transform.CompileStatic 
def fInt(int x) {new BasicRouter().method_(x)}
assert fInt(1) == 2