У меня есть проект с "уровнем языка проекта" = 6.0. Я пытаюсь изменить это на 7.0, но это не меняется, я считаю, что это потому, что я выбрал "Минимальный требуемый SDK" как API 10, и если я хочу его изменить, мне нужно выбрать API 19. Это код, который должен "Уровень языка" равен 7.0
URL url= new URL(strURL);
HttpURLConnection connection = (HttpURLConnection) url
.openConnection();
connection.setRequestProperty("Content-Type",
"application/json; charset=utf-8");
connection.setDoOutput(true);
connection.setRequestMethod("POST");
try (OutputStreamWriter out = new OutputStreamWriter(
connection.getOutputStream(), "UTF-8")) {
out.write(requestContent.toString());
}
StringBuilder responseBuilder = new StringBuilder();
try (BufferedReader in = new BufferedReader(new InputStreamReader(
connection.getInputStream(), "UTF-8"))) {
String buffer;
while ((buffer = in.readLine()) != null) {
responseBuilder.append(buffer);
}
}
return new JSONObject(responseBuilder.toString());
Как вы подозревали, try-with-resources поддерживается только в том случае, если для параметра minSdkVersion установлено значение 19 или выше.
Поддержка функций языка Java 7 была добавлена в марте 2014 года (см. здесь). Тем не менее, попытка использования ресурсов требует обновлений среды выполнения (и, следовательно, обновления для ОС Android), и эти изменения не были выполнены до тех пор, пока не будет выпущен API 19.