2014-10-09 12 views
6

Quando si tenta di utilizzare l'espressione value -> value, viene visualizzato un errore che indica che Lambda non è supportato. Attualmente sto usando il 1.8 JDK con il supporto Lambda, ma ottengo ancora l'errore. La mia ipotesi è che sia IntelliJ 13.1.4 ma non sono positivo.Java IntelliJ 13.1.4 "Le espressioni lambda non sono supportate a questo livello di lingua."

public static void grades(){ 
    final List<Integer> grade = new ArrayList<Integer>(); 
    int gradelistnumber = 1; 
    int inputedgrade = 0; 

    while(inputedgrade != -1){ 
     System.out.println("Enter Grade for student " + gradelistnumber + " (1-50): "); 
     inputedgrade = sc.nextInt(); 
     grade.add(inputedgrade); 
     gradelistnumber++; 


    } 

    System.out.println("Class Average: " + System.out.println(grade.stream().mapToInt(value -> value /*error*/).sum())); 
    } 

} 
+0

Si dovrebbe dire il numero della versione di Intellij sulla barra del titolo dell'applicazione. In caso contrario, puoi trovarlo in 'Aiuto -> Informazioni su ' –

risposta

16

Oltre a File > Project Structure > Project > Project Language Level come altro ha menzione,
Si dovrebbe anche controllare File > Project Structure > **Modules** > Sources > Project Language Level e impostato su 8

8

Vai

File > Project Structure > Project > Project Language Level 

Verificare se si tratta di 8,0

3

A parte il livello di lingua sbagliata questa riga di codice ha anche la compilazione di errore (l'operatore + non può essere applicato a void restituito da System.out.println).

System.out.println("Class Average: " + System.out.println(grade.stream().mapToInt(value -> value /*error*/).sum())); 

modificarla in:

System.out.println("Class Average: " + grade.stream().mapToInt(value -> value).sum()); 

E per quanto riguarda il livello di lingua, è possibile modificare un po 'più facile che andare in Progetto Struttura menu. Basta posizionare il cursore sulla parte del codice che mostra l'errore, ha colpito ALT + INVIO e selezionare Imposta livello di lingua a 8,0

Questo è, in generale, una buona cosa da tenere a mente, perché in IntelliJ puoi facilmente risolvere molti avvisi ed errori dal menu ALT + ENTRA.

3

Fix Maven plug-in compilatore se si genera il progetto con pom.xml

</dependencies> 
    <build> 
     <finalName>SnmpAgentExample</finalName> 
     <plugins> 
      <plugin> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <configuration> 
        <source>1.8</source> 
        <target>1.8</target> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 
</project> 

Lo stesso può essere fatto con Gradle con questo properties:

compileJava.sourceCompatibility 
compileJava.targetCompatibility 

E anche verificare come accennato in precedenza.

Livello File> Struttura del progetto> Progetto> Progetto

+0

che ha funzionato per me, brillante –

Problemi correlati