繁体   English   中英

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

[英]error: incompatible types: boolean cannot be converted to int

我收到错误消息:不兼容的类型:在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;
}

我不知道有什么问题。 您能帮我解决问题吗? 提前致谢。

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

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

问题在于此语句:

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

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM