java - 我有一个返回 int 的方法,它告诉我我缺少一个 return 语句。可以在不重写方法的情况下解决这个问题吗?
问题描述
这就是方法。正如你所看到的,所有的 if 语句都有一个返回,所以我理解为什么它不能识别输出,但是有什么办法可以解决这个问题吗?
private int bounds(int x, int y) {
if (x == -1) {
if (y == -1) {
return life[130][70];
}
else if (y == 71) {
return life[130][0];
}
if (0 <= y && y <= 70) {
return life[130][y];
}
}
else if (x == 131) {
if (y == -1) {
return life[0][70];
}
else if (y == 71) {
return life[0][0];
}
if (0 <= y && y <= 70) {
return life[0][y];
}
}
if (0 <= x && x <= 130) {
if (y == -1) {
return life[x][70];
}
else if (y == 71) {
return life[x][0];
}
if (0 <= y && y <= 70) {
return life[x][y];
}
}
}
解决方案
问问自己,如果 x 是 -2,你的方法会返回什么。
含义:编译器告诉您,通过该方法的路径没有看到返回语句。简单地说:相信编译器。
您可以通过在 if 块之后添加一个最终返回语句来解决此问题。
但真正的答案是:你永远不应该编写变得如此复杂的代码。以上是维护的噩梦。它应该被重构。
推荐阅读
- angular - 在 angular.json 和组件中导入库的区别
- mercurial - 在 Bitbucket 中使用电子邮件别名提交消息
- android - 无法使用改造在服务器上上传图像文件
- python - 将带有列表对象的 Dataframe 列转换为浮点数
- maven - Vaadin 8 + AudioVideo 插件:“加载小部件集失败”
- java - vertx中future的完成方法的用途是什么?
- r - 在图表中可视化 3 个变量
- python - 使用 chrome 驱动程序在自动脚本中共享屏幕的方法
- android - 改造:只允许一种 HTTP 方法。找到:GET 和 GET
- javascript - 使用 JavaScript 滚动标签栏项目