2014-03-01 44 views
-6

我在Java的初学者,我不能对这个很基本的问题找到信息:数组大小的声明是非法的

的Eclipse并不让我声明固定大小的数组:

public class Camera { 
    public Boolean [10] glCapabilities; 
    //... 
} 

它说,

令牌 “10”,删除此令牌

语法错误所以我可以声明一个“动态”大小的数组,但不是一个固定大小的数组。对我来说,就像宣布10个公共布尔值为该类的属性一样。

这是怎么回事?

+2

查看数组语法。 –

+1

http://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html – DreamBig

+0

Google是一个很棒的工具。输入“Java tutorial ”,你通常会有一个关于的官方教程链接作为第一个结果。 –

回答

0

在Java中声明一个数组并不要求或允许大小规范。这需要考虑int[10]一个类型,例如,type(int[10]) != type(int[5])。但是在Java中,您可以声明T[]类型,但不能强制声明的大小。

你只在初始化过程中创建指定大小的数组:

boolean[] glCapabilities = new boolean[10]; 

声明中指定大小很有意义在需要知道确切的尺寸(如C/C++中,你可以一语在堆栈中分配它们),但是这在Java中不是必需的,因为它们在任何情况下都驻留在堆上。

+0

非常感谢您的澄清。事实上,我来自C++,我很抱歉地说这个,但Java和C++之间的差异在C++中是如此受欢迎。这是我第三次面对Java缺乏代码让我负责(其他情况:运算符重载,导入机制)。 – mireazma

0
public Boolean[] glCapabilities = new Boolean[10];