禁用警告变量可能尚未初始化?

Disabling warning variable might not have been initialized?

我有 2 个变量,根据 if else 中的某些情况,我要么使用第一个变量 variable1 的代码,要么使用第二个 [=23] 的代码=]变量2.

这两个变量都声明为 final,我只在条件下分配它们,并对它们使用不同的语句。

知道如何禁用这两个语句的 android 警告吗?

有没有其他方法可以不使用 asserts检查变量是否有值 null 在我初始化它之后如果还是其他?

我非常确定我的代码确实有效并且我无法使用未初始化的变量,我更喜欢一种方法来仅禁用这些语句而不是整个项目的警告。

哪种方法是实现这个的最佳方式?

private static class foo {

private final objectwhatever variable1;
private final objectwhatever variable2;

public foo(){

   if ( condition 1)
   {
          variable1 = new objectwhatever();
          statements in variable1
   } 

  else ( condition 2)
  {
          variable2 = new objectwhatever();
          statements in variable2
  } 

}
}

A final 变量必须在构造函数中或在构造函数外赋值一次。这是一个 Java 规则,您不能禁用错误警告。但是,如果您删除 final,错误将消失。

出于某种原因,您可能希望禁用所有 Android lints,即通过将 @SuppressWarnings("ALL") 用于您的 class 或方法:

@SuppressWarnings("ALL")
private static class foo {

    private objectwhatever variable1;
    private objectwhatever variable2;
    ...
}

希望对您有所帮助!

如果你必须压制它,使用@SuppressWarnings("InstanceVariableMayNotBeInitialized"),压制"ALL"有点矫枉过正。