@SuppressWarnings("deprecation") 和 ("unused") 在 Java 中是啥意思?

Posted

技术标签:

【中文标题】@SuppressWarnings("deprecation") 和 ("unused") 在 Java 中是啥意思?【英文标题】:What do @SuppressWarnings("deprecation") and ("unused") mean in Java?@SuppressWarnings("deprecation") 和 ("unused") 在 Java 中是什么意思? 【发布时间】:2011-11-15 21:56:27 【问题描述】:

我的 Java 或 android 项目中的这些行是什么意思?

@SuppressWarnings("deprecation")
@SuppressWarnings("unused")

【问题讨论】:

【参考方案1】:

@SuppressWarnings 注释禁用某些编译器警告。在这种情况下,关于不推荐使用的代码 ("deprecation") 和未使用的局部变量或未使用的私有方法 ("unused") 的警告。 This article explains the possible values.

【讨论】:

【参考方案2】:

还有一件事:您不仅可以内联添加它们,还可以添加annotate methods。例如

@Override
@SuppressWarnings("deprecation")
public void onCreate(Bundle savedInstanceState) 
    super.onCreate(savedInstanceState);
    addPreferencesFromResource(R.xml.preferences);

但是,建议使用尽可能小的范围

作为一种风格,程序员应该始终在最有效的嵌套元素上使用这个注解。如果您想禁止在特定方法中显示警告,则应注释该方法而不是其类。

【讨论】:

【参考方案3】:

在 Java 中,@SuppressWarnings 用于限制编译器在控制台屏幕上显示某些警告。

例如

@SuppressWarnings("unused")
CheckBox transferredField = new CheckBox("is transferred");

如果我不在代码中使用 transferredField 变量,那么您的 Eclipse IDE 永远不会显示您没有在代码中使用此 transferredField 变量的警告。

【讨论】:

【参考方案4】:

@SuppressWarnings("unused") 和其他的我都试过了,但是都不管用,我总是用这个项目中说 gradle 的方法来

lintOptions
        checkReleaseBuilds false
        abortOnError  false;
        disable 'deprecation'
    

    tasks.withType(JavaCompile) 
        options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
    

【讨论】:

请不要在整个项目中禁用警告。禁用警告的范围应该是您可以做到的最具体的级别,您可以确切地知道为什么在您的情况下可以忽略。在整个项目中隐藏它们也会隐藏您应该考虑更改而不是忽略的合理问题。

以上是关于@SuppressWarnings("deprecation") 和 ("unused") 在 Java 中是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

@SuppressWarnings("")在Java中是什么意思(转)

在 java 中使用“@SuppressWarnings("unchecked")”有啥好处?

@SuppressWarnings("deprecation")

@SuppressWarnings("serial")有啥作用?

@SuppressWarnings("unchecked") 不适用于拖放

使用 @SuppressWarnings("unchecked") 时的性能注意事项