2

我有一些实现接口的类,其中一些具有根据定义在特定类实现中未使用的参数的方法。例如,“Shape”接口可以定义“contains(point)”方法,但我的特定类定义了一条线,它不能包含任何东西,因为它是一维的,所以它总是返回 false 并且从不使用点。

然而,当我使用 GCJ 进行编译时,我受到了数百条“警告:参数 x 未使用”消息的攻击。

我尝试使用 -Wno-all 标志来禁用警告,以及 gcj 手册页中记录的其他标志,但这些都没有效果。我如何指示 GCJ 不要用这些琐碎的警告来打扰我?

4

2 回答 2

2

我设法使用以下方法禁用了影响我的源代码的所有警告:

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

您可能需要添加更多-Wno-...标志来禁用更多警告。为了找出可能的标志,我检查了 Eclipse 批处理编译器中方法 org.eclipse.jdt.internal.compiler.batch.Main.handleWarningToken 和 org.eclipse.jdt.internal.compiler.batch.Main.handleErrorOrWarningToken 的主体ecjsrc-3.5.2.zipecjsrc-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
于 2012-10-09T11:58:17.843 回答
0

虽然我没有找到直接使用 gcj 执行此操作的选项,但一种解决方法是将输出通过管道传输到 grep 并查找模式“error:”,然后只显示该行和周围的几行。

例如 javac *.java 2>&1 | grep -B 3 -A 2 “错误:”

于 2010-01-13T17:31:01.887 回答