簡體   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