我可以用什么黑客来抑制未使用的功能警告?

时间:2010-03-25 13:20:33

标签: java

考虑从JNI调用的私有方法,否则不使用它,生成编译器警告未使用的方法:

private void someMethodCalledOnlyFromJNI() { // WARNING: method is never used
    // ....
}

这是Java 1.4中的一些遗留代码 - 所以@SuppressWarnings上没有骰子。

您将使用什么黑客来抑制此编译器警告?


编辑:显然这只是一个警告,很容易被忽略。但是,就个人而言,我讨厌我的代码中的警告,就像我不希望看到错误一样。 AFAIC - 我的代码应该有0个警告,这可能是夸大其词,但我对此非常迂腐。

就像一个例子,有人可能会看到这个函数,不知道它是从JNI使用的,只是删除它。

5 个答案:

答案 0 :(得分:6)

  1. 忽略它。毕竟这是一个警告 - 最佳选择
  2. 使用protected(并添加评论原因) - bearable
  3. 在它上面制作一个虚拟方法,让两个人互相调用(再次注释) - 丑陋
  4. 配置IDE根本不显示此警告(在eclipse中为Windows > Preferences > Java > Compiler > Errors/Warnings) - 不可取
  5. 根据您的更新:有0个警告不是您应该设置的目标。警告的数量取决于设置,因此如果您没有统一的IDE,则此数字会有所不同。然后你可以添加checkstyle / PMD来报告警告 - 然后你会有更多。合理的行为是有一个警告阈值。

    如果您不希望任何人删除此方法,只需添加评论:

    // This method is used is used by JNI. (Don't delete)
    

答案 1 :(得分:5)

班上的其他地方:

     if(Boolean.FALSE.booleanValue())
     { // prevents warning for unused private method which is used from JNI
         someMethodCalledOnlyFromJNI();
     }

(不能使用简单的false,因为这会导致死代码警告。)

答案 2 :(得分:3)

要么忽略警告,要么将其声明为protected。如果您选择protected并希望阻止子类化/覆盖,那么也将它声明为final

答案 3 :(得分:1)

首先,它只是一个警告,因此对你来说不应该是一个问题。

您可以修改代码以删除该功能,从而消除问题。

或者只是从代码开头/结尾处的某些地方调用它,并忽略任何结果。只要它不会尝试设置任何会影响你程序其余部分的东西,你就可以了。

答案 4 :(得分:0)

你可以把它公之于众。如果它是遗留代码,我相信没有人会抱怨:)