我的应用不承认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,所以没有意义。
这会在我的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'
}
}
}
答案 0 :(得分:0)
使用this解决方案,我能够摆脱错误。将targetCompatibility添加到Java 1.7以解决此问题。 Android目前在他们的项目中不使用Java 1.8。
将其添加到build.gradle文件:
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}