考虑到下面的功能,我注意到编译器没有发出任何问题:
private static int returnTwoTypes() {
int a = 1;
if (a == 1) {
return -1;
}
return 'a';
}
如果函数返回类型为character
,我怎么能同时返回int
和int
?
答案 0 :(得分:7)
char
是一种整数类型,可以自动提升为int
。因此,返回int
的方法可以返回char
。
答案 1 :(得分:3)
技术上,字符是16位无符号整数,因此可以作为整数返回
答案 2 :(得分:1)
此概念称为变量UpCasting ,其中较小的内存类型会自动UpCasted并返回。
此处char
已升级到int
并返回