Java代码检查显示null返回方法为never null

时间:2014-11-18 23:04:42

标签: java android android-studio lint

我找到了一个有趣的Lint检查,我无法解释。我知道Java疯狂隐藏的东西,所以我想了解这里发生了什么。也许我可以用超级讨厌的知识给我的朋友留下深刻的印象。

以下是违规代码的摘录:

public void awesomeMethod()
{    
    final int[] hungryPeople = getHungryPeople();

    if ( hungryPeople != null ) // <---- Lint says that this can never be null?
    {
         solveWorldHunger( true );
         tellEveryone( false );
    }
}

以下是相关(相关)方法:

public int[] getHungryPeople()
{
   // Get hungry people data from the class's Android Intent field
   final int[] values = mIntent.getIntArrayExtra( HUNGRY_PEOPLE );

   if ( null != values )
   {
        return Arrays.copyOf( values, values.length );
   }

   return null;
}

我在这里找不到什么东西?

1 个答案:

答案 0 :(得分:2)

您在方法之外返回null,如果getHungryPeople()values,则需要在null内返回。

public int[] getHungryPeople()
{
   // Get hungry people data from the class's Android Intent field
   final int[] values = mIntent.getIntArrayExtra( HUNGRY_PEOPLE );

   if ( null != values )
   {
        return Arrays.copyOf( values, values.length );
   }

   // if values is null, return null
   return null;
}