Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将数组声明为实例或成员。_Java - Fatal编程技术网

Java 将数组声明为实例或成员。

Java 将数组声明为实例或成员。,java,Java,由于某些原因,您无法执行下面的代码,但可以通过一种方法执行。为什么? public class Frame { String text [] = new String[]; } 您没有为数组指定大小。Java中的数组具有固定大小,在创建数组时必须提供该大小。因此,如果您想要一个可以存储10个元素的数组,您可以使用: String[] text = new String[10]; 用10代替你需要的任何尺寸。如果您不知道大小,或者需要改变大小,请考虑使用列表>代码> 之前见一些教程: 您的声

由于某些原因,您无法执行下面的代码,但可以通过一种方法执行。为什么?

public class Frame {
String text [] = new String[];
}

您没有为数组指定大小。Java中的数组具有固定大小,在创建数组时必须提供该大小。因此,如果您想要一个可以存储10个元素的数组,您可以使用:

String[] text = new String[10];
用10代替你需要的任何尺寸。如果您不知道大小,或者需要改变大小,请考虑使用<代码>列表>代码>

之前见一些教程:

您的声明在语法上不正确,应该是:

String text [] = new String[0]; // 0-> size you want for your array
有关更多详细信息(回答评论):来自

DimExpr中每个维度表达式的类型必须是可转换为整型(§5.1.8)的类型,否则会发生编译时错误

每个维度表达式进行一元数字提升(§5.6.1)。升级的类型必须为int,否则会发生编译时错误


这两种方法你都做不到。它在语法上不正确。如果在方法中声明零,则不需要添加零。仅当您将其声明为类变量时,它才会显示为错误。但是谢谢。0只是一个例子,如果你看到评论的话。关键是您的声明在语法上不正确。有关更多详细信息,请参见链接。我的意思是,如果在数组大小声明中没有添加任何数字,并且在方法中声明了它,它不会显示为错误,但仍然是不正确的。但是,如果将其声明为类变量,则会显示错误。这就是我想说的。但它现在起作用了。谢谢。在函数内部,它仍然会给您“变量必须提供维度表达式或数组初始值设定项”错误,不过请参阅答案以了解更多详细信息。
ArrayCreationExpression: 
new PrimitiveType DimExprs [Dims] 
new ClassOrInterfaceType DimExprs [Dims] 
new PrimitiveType Dims ArrayInitializer 
new ClassOrInterfaceType Dims ArrayInitializer

DimExprs:
DimExpr {DimExpr}
DimExpr:
{Annotation} [ Expression ]