无效的字符串切换案例

时间:2014-11-19 01:43:00

标签: java android android-studio

我的应用不承认JDK 1.8。我试图使用带字符串的开关盒作为开关。只使用JavaDocs中的基本示例是的,我可以切换到if / else语句,但我不愿意。

public String getTypeOfDayWithSwitchStatement(String dayOfWeekArg) {
 String typeOfDay;
 switch (dayOfWeekArg) {
     case "Monday":
         typeOfDay = "Start of work week";
         break;
     case "Tuesday":
     case "Wednesday":
     case "Thursday":
         typeOfDay = "Midweek";
         break;
     case "Friday":
         typeOfDay = "End of work week";
         break;
     case "Saturday":
     case "Sunday":
         typeOfDay = "Weekend";
         break;
     default:
         throw new IllegalArgumentException("Invalid day of the week: " + dayOfWeekArg);
 }
 return typeOfDay;
}

我收到Incompatible Types: byte, char, int, short的错误,这意味着我正在使用旧版本的Java ..因为我安装了jdk1.8.0_11,所以没有意义。

Android Studio Version

这会在我的Gradle文件中出现问题吗?

apply plugin: 'com.android.application'

dependencies {
    compile 'com.parse.bolts:bolts-android:1.1.2'
    compile fileTree(dir: 'libs', include: 'Parse-*.jar')
    compile 'com.android.support:support-v4:18.0.0'
}

android {
    compileSdkVersion 15
    buildToolsVersion "20.0.0"

    defaultConfig {
        applicationId "name"
        minSdkVersion 15
        targetSdkVersion 15
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

1 个答案:

答案 0 :(得分:0)

使用this解决方案,我能够摆脱错误。将targetCompatibility添加到Java 1.7以解决此问题。 Android目前在他们的项目中不使用Java 1.8。

将其添加到build.gradle文件:

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_7
    targetCompatibility JavaVersion.VERSION_1_7
}