当前位置:  开发笔记 > 编程语言 > 正文

检查变量是否在Java中初始化

如何解决《检查变量是否在Java中初始化》经验,为你挑选了3个好方法。

在Java中是否有一种方法可以检查变量是否初始化为不在类中.我找到了javascript而不是Java.听到是我正在寻找的一个例子.

private float[] Average;
private void Check(){
if(/*variable is not initialized*/){ Average = new float[4];}
}

Andrea Dusza.. 13

您可以使用if (Average == null)它来检查它是否为空,但您无法确定它是否显式设置为null或默认情况下为null.这适用于每种Object类型(数组也是对象),因为对象的默认值为null.但是,8种基本类型(int,byte,float,char,long,short,double和boolean)不能为null.例如,int如果您没有为其赋值,则默认为0.



1> Andrea Dusza..:

您可以使用if (Average == null)它来检查它是否为空,但您无法确定它是否显式设置为null或默认情况下为null.这适用于每种Object类型(数组也是对象),因为对象的默认值为null.但是,8种基本类型(int,byte,float,char,long,short,double和boolean)不能为null.例如,int如果您没有为其赋值,则默认为0.


*“它们总是有一个默认值” * ...`null`是对象类型的默认值,因此每个变量都被初始化,然后程序通过编译。

2> Anthony Raym..:

java中的数组就像对象一样(它们不是原始类型).

所以是的,您可以使用以下命令检查您的阵列是否已初始化:

private void check(){
    if(average == null){
        average = new float[4];
    }
}



一个更好的解决方案(如果您在实例化时知道数组大小)

但在我看来,你最好在类构造函数中初始化变量,如下:

public class MyClass {
    private float[] average;

    public MyClass(int arraySize) {
        this.average = new float[arraySize];
    }
}

这样,每次MyClass创建对象时,您都会确保它已初始化.

一个更好的解决方案(即使您在实例化时不知道数组大小)

如果您不知道阵列的大小,我最好使用List:

public class MyClass {
    private List average;

    public MyClass() {
        this.average = new ArrayList<>();
    }
}

如果列表已满,则会调整列表的大小.



3> hrust..:

如果您担心类定义之外的变量,那么您应该检查是否存在null.

null将指示变量未初始化.如果是原始类型,例如int,double类似的,编译器会通知您特定变量未初始化.

在类字段中,甚至在构造函数执行之前,使用默认值初始化.

推荐阅读
帆侮听我悄悄说星星
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有