繁体   English   中英

声明变量后即出现空指针异常

[英]null pointer exception just after declaring variable

我有一段代码,我在for循环中声明了变量i,此后我尝试打印i,它给了我一个空指针异常。 我真的不知道为什么,我只是声明了变量。

 public void normalization(){
        for(int i = 0; i < numberOfVariables; i++){
            out.print(i);
            double min = unitRow.getMin(i);
            double max = unitRow.getMax(i);

            for(int j = 0; j < numberOfRecords; j++){
                double normalizedValue = normalizeValue(unitRow.unitArray[j].numberRow.numberArray[i],min,max);
                unitRow.unitArray[j].numberRow.update(i, normalizedValue);

            }
        }
    }

你初始化out吗? System.out.print()是常规命令...简单的out可能会使它感到困惑。

代替

out.print(i);

放:

System.out.print(i);

行out.print(i)应该是System.out.println(i);

出什么out ??

您应该像PrintStream out = System.out;一样分配它PrintStream out = System.out;

或简单地使用System.out.print(i);

for(int i = 0; i < numberOfVariables; i++){
            System.out.print(i);
            double min = unitRow.getMin(i);
            double max = unitRow.getMax(i);
   }

您正在尝试打印i ,而那时您正在获取NullPointerException 当您在不引用任何对象的引用变量上调用方法时,会发生NullPointerException 因此,在您的情况下,显然out变量为null

请为其分配一个对象。

您可以通过使用分配一个printWriter

PrintWriter out = new PrintWriter(System.in);

或者,如果您只是想使用System.out.println()在系统上进行打印;

如果您只想打印“ i”,请使用System.out.print(i)。 并且它不给出空异常。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM