ho acceso una base di codice esistente per Java 7 e continuo a ricevere questo avvertimento:Attenzione: il documento per il tipo '[Inserire classe qui]' creato nell'ultimo turno non saranno oggetto di trattamento annotazione
warning: File for type '[Insert class here]' created in the last round
will not be subject to annotation processing.
Una rapida ricerca rivela che nessuno ha ricevuto questo avvertimento.
Non è documentata nella sorgente del compilatore javac sia:
Da OpenJDK \ langtools \ src \ share \ Classes \ com \ sole \ tools \ javac \ elaborazione \ JavacFiler.java
private JavaFileObject createSourceOrClassFile(boolean isSourceFile, String name) throws IOException {
checkNameAndExistence(name, isSourceFile);
Location loc = (isSourceFile ? SOURCE_OUTPUT : CLASS_OUTPUT);
JavaFileObject.Kind kind = (isSourceFile ?
JavaFileObject.Kind.SOURCE :
JavaFileObject.Kind.CLASS);
JavaFileObject fileObject =
fileManager.getJavaFileForOutput(loc, name, kind, null);
checkFileReopening(fileObject, true);
if (lastRound) // <-------------------------------TRIGGERS WARNING
log.warning("proc.file.create.last.round", name);
if (isSourceFile)
aggregateGeneratedSourceNames.add(name);
else
aggregateGeneratedClassNames.add(name);
openTypeNames.add(name);
return new FilerOutputJavaFileObject(name, fileObject);
}
Cosa questo significa e quali passi posso prendere per cancellare questo avviso?
Grazie.
Quando ho letto questa domanda, inizialmente ho pensato che fosse perché non è riuscito a chiudere un file. Per verificare ciò, ho creato un semplice processore che ha creato, scritto, ma non chiuso un file. L'ho eseguito. Ha dato un avvertimento simile ma diverso. – emory