VSC Невозможно включить значение типа String для уровня источника ниже 1,7 - PullRequest
0 голосов
/ 13 мая 2018

У меня ошибка в коде, потому что я использую строку, как в случае с переключателем:

private static void setNumberValues(Employee emp, Address address,
        String keyName, long value, List<Long> phoneNums) {
    switch(keyName){
    case "zipcode":
        address.setZipcode((int)value);
        break;
    case "id":
        emp.setId((int) value);
        break;
    case "phoneNumbers":
        phoneNums.add(value);
        break;
    default:
        System.out.println("Unknown element with key="+keyName);    
    }
}

Я сталкиваюсь с этой ошибкой в ​​коде Visual Studio с расширением Red Hat Java.

Я знаю, что означает ошибка, вот мое окружение:

Моя версия JDK:

    /usr/libexec/java_home -V
    Matching Java Virtual Machines (1):
    1.8.0_131, x86_64:  "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home

    /Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home

Мой код Visual Studio Настройки java.home:

"java.home": "/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home"

Как сказать VSC скомпилировать с моим jdk 1.8 и не беспокоиться о старой java 1.6?

С уважением,

* * С. тысяча двадцать-одина * * тысяча двадцать две

1 Ответ

0 голосов
/ 14 мая 2018

хорошо, спасибо за предложения, я прочитал ветку, предложенную @ Stephen-c, но на самом деле это не решает мою проблему.Я изменяю POM следующим образом:

  <properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
  </properties>

Но в коде Visual Studio у меня все еще есть keyName , подчеркнутый красным, и ошибка:

[Java] Cannot switch on a value of type String for source level below 1.7. 


Only convertible int values or enum variables are permitted
    String keyName - com.journaldev.json.EmployeeJSONParser.setNumberValues(Employee, Address, String, long, List<Long>)

Спасибо,

S.

...