簡體   English   中英

Switch語句在android項目中不起作用

[英]Switch statement doesn't work in android project

我是Android Dev的初學者。 我剛剛在字符串上使用switch case語句遇到了這個問題:

String str = "Hello";
switch (str) {
    case "Hello":
       System.out.println("case 1");break;
    default:
       System.out.println("default");break;
}

Eclispse日志:

Cannot switch on a value of type String for source level below 1.7. Only convertible int values or enum variables are permitted Home.java

所以我要去Project properties-> Java Compiler,然后將JDK設置為1.7並應用它。 但是現在蝕使我無法修復會回到第一個問題的屬性...

Android requires compiler compliance level 5.0 or 6.0. Found '1.7' instead. Please use Android Tools > Fix Project Properties.

我如何解決它以使用我的開關盒?

謝謝

您需要在switch語句中傳遞數字值或字符值。 例如

char str = 'A';
switch (str) {
    case 'A':
       System.out.println("case 1");break;
    default:
       System.out.println("default");break;
}

是的,在Java 1.7中引入了帶有String類的switch語句。 但是Android對不起1.6。 檢查文檔中可以使用的類型。 我不知道這種情況,但Enums和switch語句確實很好用

在eclipse屬性中將編譯器版本降低到1.6。 Android尚不支持所有1.7。

在此處輸入圖片說明

要在開關中明確說明情況,可以使用枚舉

public enum helloEnum {
    HELLO, HOLA, CIAO
}


public class EnumTest {
    helloEnum mHello;

    public EnumTest(helloEnum mHello) {
        this.mHello = mHello;
    }

    public void sayHello() {
        switch (mHello) {
            case HELLO:
                System.out.println("hello");
                break;

            case HOLA:
                System.out.println("hola");
                break;

            case CIAO
                System.out.println("ciao");
                break;

            default:
                System.out.println("hello");
                break;
        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM