为什么编译器在返回错误类型时不会抱怨?

时间:2018-01-18 14:22:56

标签: java

考虑到下面的功能,我注意到编译器没有发出任何问题:

private static int returnTwoTypes() {
    int a = 1;
    if (a == 1) {
        return -1;
    }
    return 'a';
}

如果函数返回类型为character,我怎么能同时返回intint

3 个答案:

答案 0 :(得分:7)

char是一种整数类型,可以自动提升为int。因此,返回int的方法可以返回char

答案 1 :(得分:3)

技术上,字符是16位无符号整数,因此可以作为整数返回

答案 2 :(得分:1)

此概念称为变量UpCasting ,其中较小的内存类型会自动UpCasted并返回。

此处char已升级到int并返回