在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.
您可以使用if (Average == null)
它来检查它是否为空,但您无法确定它是否显式设置为null或默认情况下为null.这适用于每种Object类型(数组也是对象),因为对象的默认值为null.但是,8种基本类型(int,byte,float,char,long,short,double和boolean)不能为null.例如,int
如果您没有为其赋值,则默认为0.
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 Listaverage; public MyClass() { this.average = new ArrayList<>(); } }
如果列表已满,则会调整列表的大小.
如果您担心类定义之外的变量,那么您应该检查是否存在null
.
null
将指示变量未初始化.如果是原始类型,例如int
,double
类似的,编译器会通知您特定变量未初始化.
在类字段中,甚至在构造函数执行之前,使用默认值初始化.