从java中的int数组的定义中单独声明

时间:2015-10-27 07:33:46

标签: java android

如何从定义中分离出int数组的声明?对不起基本问题。我基本上是从c / c ++背景。

int [] res;

switch (something) 
{
  case <something>:
     res = somefunction () 
     break;
{

if ( res == null )  ==>> problem is here. // 'res' might not have been initialized.

我如何处理这个问题,最好的方法是什么?

3 个答案:

答案 0 :(得分:6)

正如提到的其他答案,你可以做到

int [] res = null;

但我经常更喜欢确保switch处理所有情况:

int [] res;                   // Leave it uninitialized

// ...

switch (something)            // Set `res` in every branch
{
  case <something>:
     res = somefunction();
     break;
  // ...
  default:                    // Including the default
     res = null;
     break;
}

这样,如果你添加一个新条件,你必须有意识地决定你应该用res做什么(因为如果你什么都不做,编译器会提醒你)。

pre-init和“处理所有路径”方法都有用例。

答案 1 :(得分:4)

当数组变量(或者就此而言,任何变量)是局部变量时,必须给它一个初始值,因为局部变量没有默认值。

int [] res = null;

这样即使你的case语句没有被执行它也会有一个值。

答案 2 :(得分:3)

所以,初始化

int [] res = null;