Vraag Wat is Project Language-niveau in IntelliJ IDEA?


Ik gebruik Java 7 SDK en IntelliJ IDEA IDE.

java version "1.7.0_11"
Java(TM) SE Runtime Environment (build 1.7.0_11-b21)
Java HotSpot(TM) 64-Bit Server VM (build 23.6-b04, mixed mode)

Ik kan nog steeds geen Java 7-functies gebruiken. Na een beetje googlen zou ik alle functies kunnen gebruiken na het instellen van het projecttaalniveau 7(Diamond, ARM, multicatch etc). Wat is dit precies? Als dit een relatie heeft met syntaxis op basis van JDK in gebruik wat is level 8(Lambda, annotations etc)? Java 8 is nog niet vrijgegeven. Java 8 wordt verwacht in maart 2014 volgens Wiki. Geef dit concept op taalniveau alstublieft door.


50
2017-07-18 04:31


oorsprong


antwoorden:


De Language level set-sets die de code-assistentie in de editor ondersteunt moeten ondersteunen. Als u bijvoorbeeld JDK 1.7 gebruikt maar wilt dat uw code compatibel is met JDK 1.6, kunt u het taalniveau lager instellen dan uw werkelijke JDK-ondersteuning (6.0 in het geval van JDK 1.6) en krijgt u alleen refactorings / syntax die wordt gesuggereerd worden ondersteund op 1.6 en lager. Afhankelijk van je compiler, kan het ook de compiler-opties geven om ondersteuning voor nieuwere syntaxiselementen te verwijderen.

De 8.0 (die, zoals je raadt overeenkomt met Java 8) is beschikbaar voor mensen die willen experimenteren met een van de Java 8 snapshots die beschikbaar zijn. Aangezien Java 8 niet is vrijgegeven, kan taalniveau 8.0 heel goed veranderen voordat het wordt uitgebracht.


72
2017-07-18 04:53



Vanaf de documentatie binnen sectie De algemene projectinstellingen verkennen bij de IntelliJ Wiki, het niveau van de projecttaal beïnvloedt de intellisense van de IDE.

Het dicteert ook het gedrag van de compiler die wordt gebruikt door IntelliJ wanneer deze uw Java-code compileert terwijl u zich ontwikkelt.

Deze instelling vertelt alle faciliteiten van de compiler die beschikbaar zouden zijn voor het project. Voor b.v. Door het taalniveau in te stellen op JDK 5 kan de IntelliJ zoekwoorden zoals herkennen enum die aanwezig zijn in de broncode.


4
2017-07-18 04:50



Als je naar de opties voor de javac Java-compileeropdracht, je zult zien dat het -source en -target Met opties kunt u compileren met alternatieve versies van Java. Ik weet niet zeker tot welke optie IntelliJ's taalniveau-instelling overeenkomt (waarschijnlijk is dit -source), maar in feite vertelt IntelliJ dat de gebruikte Java SDK moet worden gebruikt (in de Project SDK veld) in de opgegeven Java-taalversie in plaats van de laatste die door de SDK is verstrekt.

Dus terwijl u Java 7 hebt geïnstalleerd, kunt u het taalniveau instellen op 6.0en IntelliJ zal uw code compileren met de Java 6-specificatie in plaats van de Java 7-specificatie. Dit omvat alle real-time suggesties en code controle gedaan terwijl u typt.

De Java 8-optie is er waarschijnlijk vanwege het feit dat beta-builds van Java 8 beschikbaar zijn om te testen.

Ik heb nooit geëxperimenteerd met wat er zou gebeuren als je een taalniveau instelt op iets dat hoger is dan de JDK-versie.


3
2017-07-18 04:55