Come ignorare avvisi con GCJ
-
20-09-2019 - |
Domanda
Ho alcune classi che implementano le interfacce, alcune delle quali hanno metodi cui parametri sono per definizione non utilizzato nella particolare implementazione classe. per esempio. Un'interfaccia "Shape" può definire un "contiene (punto)" metodo, ma la mia classe particolare definisce una linea, che non può contenere qualsiasi cosa dal momento che è 1-dimensionale, in modo che restituisce sempre false e non utilizza mai il punto.
Tuttavia, quando compilo con GCJ, sto aggredito con centinaia di. "Avvertimento: il parametro x è non utilizzati" messaggi
Ho provato ad utilizzare il -Wno-all bandiera per disabilitare gli avvisi, così come gli altri documentati in manpage di gcj, ma questi non hanno alcun effetto. Come faccio a istruire GCJ non mi perdere tempo con questi avvertimenti banali?
Soluzione 2
Anche se non ho trovato la possibilità di farlo direttamente con gcj, una soluzione è inviare l'output in grep e cercare il modello "errore", e poi mostrare solo quella linea e poche righe circostanti <. / p>
es. javac * .java 2> & 1 | grep -B 3 -A 2 "errore:"
Altri suggerimenti
Sono riuscito a disattivare tutti gli avvisi che colpisce il mio codice sorgente usando:
gcj -Wno-all -Wno-unchecked -Wno-raw *.java
È possibile aggiungere più bandiere -Wno-...
per disabilitare più avvisi. Per capire le possibili bandiere, ho esaminato il corpo dei metodi org.eclipse.jdt.internal.compiler.batch.Main.handleWarningToken e org.eclipse.jdt.internal.compiler.batch.Main.handleErrorOrWarningToken nella Batch compilatore Eclipse ecjsrc-3.5.2.zip
e ecjsrc-3.8.zip
.
Specifica tutte queste bandiere per ottenere tutte le avvertenze disabilitate:
-Wno-all
-Wno-allDeadCode
-Wno-allDeprecation
-Wno-allJavadoc
-Wno-allOver-ann
-Wno-all-static-method
-Wno-assertIdentifier
-Wno-boxing
-Wno-charConcat
-Wno-compareIdentical
-Wno-conditionAssign
-Wno-constructorName
-Wno-deadCode
-Wno-dep-ann
-Wno-deprecation
-Wno-discouraged
-Wno-emptyBlock
-Wno-enumIdentifier
-Wno-enumSwitch
-Wno-enumSwitchPedantic
-Wno-fallthrough
-Wno-fieldHiding
-Wno-finalBound
-Wno-finally
-Wno-forbidden
-Wno-hashCode
-Wno-hiding
-Wno-includeAssertNull
-Wno-incomplete-switch
-Wno-indirectStatic
-Wno-interfaceNonInherited
-Wno-intfAnnotation
-Wno-intfNonInherited
-Wno-intfRedundant
-Wno-javadoc
-Wno-localHiding
-Wno-maskedCatchBlock
-Wno-maskedCatchBlocks
-Wno-nls
-Wno-noEffectAssign
-Wno-noImplicitStringConversion
-Wno-null
-Wno-nullDereference
-Wno-over-ann
-Wno-over-sync
-Wno-packageDefaultMethod
-Wno-paramAssign
-Wno-pkgDefaultMethod
-Wno-raw
-Wno-redundantSuperinterface
-Wno-resource
-Wno-semicolon
-Wno-serial
-Wno-specialParamHiding
-Wno-static-access
-Wno-static-method
-Wno-staticReceiver
-Wno-super
-Wno-suppress
-Wno-switchDefault
-Wno-syncOverride
-Wno-synthetic-access
-Wno-syntheticAccess
-Wno-typeHiding
-Wno-unavoidableGenericProblems
-Wno-unchecked
-Wno-unnecessaryElse
-Wno-unqualifiedField
-Wno-unqualified-field-access
-Wno-unsafe
-Wno-unused
-Wno-unusedAllocation
-Wno-unusedArgument
-Wno-unusedArguments
-Wno-unusedImport
-Wno-unusedImports
-Wno-unusedLabel
-Wno-unusedLocal
-Wno-unusedLocals
-Wno-unusedPrivate
-Wno-unusedThrown
-Wno-unusedTypeArgs
-Wno-uselessTypeCheck
-Wno-varargsCast
-Wno-warningToken