小羊也疯狂 2016-12-03 10:23 采纳率: 100%
浏览 3490
已采纳

Java 方法返回值类型 类型转换

图片说明
图片说明
第5行一直报错 说要返回long 类型的值

问题1:我认为我方法中的三种情况下的返回值都是long 不知道出了什么错
问题2:如果我在返回值为long的方法里写
renturn 1 ; 这个 1 会被自动转化为long类型吗
问题3 : 这么写可不可以
return (long )1;

  • 写回答

9条回答

  • yangqinghua1992 2016-12-04 16:54
    关注

    问题1:方法 F 中有3个 if 语句,你的返回值都建立在 if 条件成立时返回,但可能这三个条件都不成立,那就没有返回值了,所以报错。

    问题2:return 1; 是可以的,Java会自动的将表示范围小的数据类型 自动 提示为大的数据类,这叫做 "自动类型提升" 或 "隐式转换"

    问题3:return (long) 1; 没有问题, 更好的写法是 return 1L,注意 1 后面有一个大写字母 L ,这叫做给数字加 "后缀",但在你这个方法里不必这样,返回 1 即可,参见问题2解答。

    在Java中,整数默认是int类型,小数默认是double类型,如果你想告诉 Java虚拟机这个 1 是 long 类型,只需要在数字后面加上 字母L (不区分大小写,但建议大写,因为小写的L 容易与数字 1 混淆)

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(8条)

报告相同问题?

悬赏问题

  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大
  • ¥15 import arcpy出现importing _arcgisscripting 找不到相关程序
  • ¥15 onvif+openssl,vs2022编译openssl64