2015-11-18 15 views
12

Quando uso il metodo di Java 8 operatore di riferimento di due punti (::) con nuovo operatore (ad esempio MyType::new), ottengo questo errore in Eclipse della suite Strumento di primavera (STS):Il tipo org.eclipse.jdt.annotation.NonNull non può essere risolto. Si è indirettamente riferimento dal file necessari .class

Il tipo org.eclipse.jdt.annotation.NonNull non può essere risolto. Fa riferimento indirettamente dai file .class richiesti

Come eliminare questo errore?

risposta

6

La descrizione dell'errore è fornita nel commento di Stephan Herrmann. È disponibile Eclipse issue per rendere questo problema più facile da usare.

soluzione è di includere le seguenti dipendenze:

<dependency> 
    <groupId>org.eclipse.jdt</groupId> 
    <artifactId>org.eclipse.jdt.annotation</artifactId> 
    <version>2.0.0</version> 
</dependency> 
+2

A destra, l'errore indica che il progetto Eclipse è configurato per eseguire l'analisi nulla basata sull'annotazione, ma non sono disponibili annotazioni null sul classpath. Rendere disponibili annotazioni null (indipendentemente dal meccanismo di dipendenza utilizzato dal progetto) non è solo una soluzione, ma in realtà la soluzione appropriata. Il bug di Eclipse tratta di segnalare adeguatamente questo problema di configurazione (meglio dell'errore di risoluzione nella domanda). –

+0

@StephanHerrmann, grazie per i chiarimenti. Ho aggiornato la mia risposta. – luboskrnac

6

Un'altra opzione è quella di disabilitare la funzione a base di annotazione analisi nullo in Eclipse.

Aprire le impostazioni globali o di progetto e andare a Java > Compiler > Warnings. Nella categoria Null analysis, deselezionare Enable annotation-based null analysis.

Lo spazio di lavoro dovrà essere ricostruito e quegli errori non verranno più visualizzati.

Problemi correlati