Ziz*_*212 6 java type-conversion equivalence
我试图为课程完成一些代码:
public int getValue(char value) {
if (value == 'y') return this.y;
else if (value == 'x') return this.x;
Run Code Online (Sandbox Code Playgroud)
因为我最终可能无法返回任何东西,所以它告诉我最后这样做:
return value;
Run Code Online (Sandbox Code Playgroud)
这让我很吃惊,因为该方法的返回类型是类型int.然而,它告诉我要回来char!我正在使用eclipse,习惯于无数的警告和东西,这是一个重大的惊喜.
那么,char真的是一个int?为什么会这样?
在Java语言规范状态
当一个带有a的return语句
Expression出现在方法声明中时,Expression必须可以为该方法的声明返回类型赋值(第5.2节),否则会发生编译时错误.
管理一个值是否可赋予另一个值的规则定义为
赋值上下文允许使用以下之一:
和
对原始类型的19个特定转换称为扩展原始转换:
char以int,long,float,或'双
最后
在以下情况下,扩展的原始转换不会丢失有关数值总体大小的信息,其中数值保持不变:[...]
将a的扩展转换为
char整数类型的T零 - 扩展了char值的表示以填充更宽的格式.
简而言之,char作为return语句表达式的值可int通过扩展基元转换分配给返回类型.
| 归档时间: |
|
| 查看次数: |
1596 次 |
| 最近记录: |