错误:类型不兼容:布尔值无法转换为int

时间:2019-01-04 07:12:28

标签: java android

我遇到错误:不兼容的类型:在Android Studio中编译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;
}

我不知道有什么问题。您能帮我解决问题吗?预先感谢。

4 个答案:

答案 0 :(得分:2)

您的问题尚不清楚,但是您可能想要这样:

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.
        }
    }

答案 1 :(得分:1)

问题在于以下语句:

int equalsIgnoreCase2 = str.equalsIgnoreCase("火");

equalsIgnoreCase()方法返回一个boolean值,并且您将其分配给一个int值。这就是为什么会出现此错误。

答案 2 :(得分:1)

您可以在switch语句中使用Strings并返回各自的int值。

https://docs.oracle.com/javase/7/docs/technotes/guides/language/strings-switch.html

因为我们不能为返回值使用混合类型。您可以考虑0(FALSE)和1(TRUE)。或任何此类随机值。

答案 3 :(得分:0)

Java不是C语言,因此布尔值不能是整数,它们是完全不同的类型,不能混合使用。在第三行中,您将布尔值分配给int