Java初始化变量还是数组?

时间:2011-11-01 21:50:03

标签: java

这行代码提供以下警告:

    short[] sh = null;

    for (int i = 0, n = b.length; i < n; i++) {
        sh[i] = 0;

    }  

警告:变量sh在此位置只能为空。

short[] sh;

for (int i = 0, n = b.length; i < n; i++) {
    sh[i] = 0;

} 

并且,此代码提供以下警告:

警告:可能尚未初始化局部变量sh。

5 个答案:

答案 0 :(得分:2)

这是因为你需要初始化数组。试试这个:

short[] sh = new short[b.length];

如果您没有初始化,您将收到这些警告,并且如果您运行它将获得NullPointerException

答案 1 :(得分:1)

你刚宣布了一个变量。

您需要创建数组:

short[] arr = new short[size];

答案 2 :(得分:0)

代码中

sh将始终为null:

short[] sh = new short[b.length];

答案 3 :(得分:0)

初始化意味着创建数组,在Java中使用“new”关键字

short[] arr = new short[10];

答案 4 :(得分:0)

sh是一个表示short s。

数组的变量
  

警告:变量sh在此位置只能为空。

sh已初始化但未正确,它为null

short[] sh = new short[b.length];
  

警告:可能尚未初始化局部变量sh。

由于局部变量未像实例变量那样自动初始化,因此您必须对其进行初始化。