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

2022-09-05 00:18:37

有没有办法在Java中检查变量是否初始化不在类内。我发现了javascript,但没有找到Java。Hear是我正在寻找的一个例子。

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

答案 1

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<Float> average;

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

列表在满时会自动调整大小。


答案 2

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


推荐