2010-01-13 2 views
2

У меня есть несколько классов, которые реализуют интерфейсы, некоторые из которых имеют методы, параметры которых по определению не используются в конкретной реализации класса. например Интерфейс «Shape» может определять метод «contains (point)», но мой конкретный класс определяет строку, которая не может содержать ничего, поскольку она является одномерной, поэтому она всегда возвращает false и никогда не использует точку.Как игнорировать предупреждения с GCJ

Однако, когда я скомпилирован с GCJ, меня атакуют сотни сообщений «предупреждение: параметр x is unused».

Я попытался использовать флаг -Wno-all для отключения предупреждений, а также других, задокументированных в man-странице gcj, но они не имеют никакого эффекта. Как я рекомендую GCJ не беспокоить меня этими тривиальными предупреждениями?

ответ

1

Хотя я не нашел возможности сделать это непосредственно с помощью gcj, одним обходным путем является вывод вывода в grep и поиск шаблона «error:», а затем только показать эту строку и несколько окружающих линий.

например. javac * .java 2> & 1 | Grep -B 3 -A 2 «Ошибка:»

2

мне удалось отключить все предупреждения, влияющие на мой исходный код с помощью:

gcj -Wno-all -Wno-unchecked -Wno-raw *.java 

Вы можете добавить больше -Wno-... флаги, чтобы отключить несколько предупреждений. Чтобы выяснить возможные флаги, я рассмотрел тело методов org.eclipse.jdt.internal.compiler.batch.Main.handleWarningToken и org.eclipse.jdt.internal.compiler.batch.Main.handleErrorOrWarningToken в компиляторе партии Eclipse ecjsrc-3.5.2.zip и ecjsrc-3.8.zip.

Укажите все эти флаги, чтобы получить все предупреждения отключены:

-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 
Смежные вопросы