我得到了错误:不兼容类型:在android中编译安卓应用程序时,布尔值不能转换为int错误。问题是只有一种方法。
private static int get_wx_inx(String str) {
boolean equalsIgnoreCase = str.equalsIgnoreCase("木");
int equalsIgnoreCase2 = str.equalsIgnoreCase("火");
if (str.equalsIgnoreCase("土")) {
equalsIgnoreCase2 = true;
}
if (str.equalsIgnoreCase("金")) {
equalsIgnoreCase2 = 3;
}
return str.equalsIgnoreCase("水") ? 4 : equalsIgnoreCase2;
}我不知道怎么回事。你能帮我解决这个问题吗。提前谢谢。
发布于 2019-01-04 07:35:07
您的问题还不太清楚,但您可能需要这样做:
private static int get_wx_inx(String str) {
if(str.equalsIgnoreCase("木")) {
return 0;
} else if(str.equalsIgnoreCase("火")) {
return 1;
}else if(str.equalsIgnoreCase("土")) {
return 2;
} else if(str.equalsIgnoreCase("金")) {
return 3;
} else if(str.equalsIgnoreCase("水")) {
return 4;
} else {
return 0;// write default return here. If every condition goes false then this default will be return.
}
}发布于 2019-01-04 07:30:01
您可以在switch语句中使用String并返回相应的int值。
https://docs.oracle.com/javase/7/docs/technotes/guides/language/strings-switch.html
因为返回值不能有混合类型。您可以考虑0(FALSE)和1(TRUE)。或者任何这样的随机值。
发布于 2019-01-04 07:15:33
问题在于这一说法:
int equalsIgnoreCase2 = str.equalsIgnoreCase("火");equalsIgnoreCase()方法返回一个boolean值,并将其分配给int值。这就是为什么它会产生这个错误。
https://stackoverflow.com/questions/54034507
复制相似问题