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

时间:2016-03-21 10:32:00

标签: java android android-studio android-lint

我有2个变量,根据if中的某些情况,我要么使用第一个变量 variable1 的代码,要么使用第二个 variable2 的代码

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

关于如何禁用这两个语句的android警告的任何想法?

有没有其他方法可以做到这一点,而不使用断言检查变量是否值为null 我在if或else中初始化它后

我非常确定我的代码确实有用,并且我无法使用未初始化的变量,我更倾向于只禁用这些语句的警告,而不是整个项目的警告。

哪种方法最好的实现呢?

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
  } 

}
}

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

var images = []; $(document).on('change', '[type=checkbox]', function(e) { if($(this).is(":checked")) { images.push({id:$(this).attr('value'), src:$(this).parent().prev().attr('src')}); } } $('#next').click(function(){ var response = sessionStorage.setItem('selectedGridImages', JSON.stringify(images)); } 变量必须在构造函数中分配一次或在其中分配。这是一条Java规则,您无法禁用错误警告。但是,如果您删除final,则错误将消失。

出于某种原因,您可能希望禁用所有Android lints,即使用final到您的班级或方法:

@SuppressWarnings("ALL")

希望有所帮助!