java语言只有在程序执行时,数组长度才能确定下来! 所以你可以按如下方法实现: A[] a = new A[5]; for(int i = 0;i < a.length;i++){ a[i] = new A(); } 或者 list 是将数据库检索出来的数据放入ArrayList对象里。 A[] a = new A[list.size]; for(int i = 0;i < a.length;i++){ a[i] = new A(); }
有3个类:Rectangle RectCollectionManager Test在Rectangle类中: int top; int height; int left; int width; public Rectangle(int top,int height,int left,int width) {......} public void print() {......}在RectCollectionManager类中: public void Add(Rectangle rect) { int (int i=0;i<rect.length;i++) { rect.print(); } }在测试类Test中:Rectangle []r1=new Rectangle(5); r1[0]=new Rectangle(1,1,1,1); r1[1]=new Rectangle(11,11,11,11); RectCollectionManager r= new RectCollectionManager(); r.Add(r1); r1[0]和r1[1]能打印出来的,可后面跟出一堆话我也不知道是什么,应该是越界了吧?
所以你可以按如下方法实现:
A[] a = new A[5];
for(int i = 0;i < a.length;i++){
a[i] = new A();
}
或者
list 是将数据库检索出来的数据放入ArrayList对象里。
A[] a = new A[list.size];
for(int i = 0;i < a.length;i++){
a[i] = new A();
}
int top;
int height;
int left;
int width;
public Rectangle(int top,int height,int left,int width)
{......}
public void print()
{......}在RectCollectionManager类中:
public void Add(Rectangle rect)
{
int (int i=0;i<rect.length;i++)
{
rect.print();
}
}在测试类Test中:Rectangle []r1=new Rectangle(5);
r1[0]=new Rectangle(1,1,1,1);
r1[1]=new Rectangle(11,11,11,11);
RectCollectionManager r= new RectCollectionManager();
r.Add(r1);
r1[0]和r1[1]能打印出来的,可后面跟出一堆话我也不知道是什么,应该是越界了吧?
把上面的问题都该了,因为5个元素,只创建了两个具体的,可能会出现空指针错误,也不会有数组越界的问题.
你只声明了r1[0]和r1[1]
2 3 4 都是空的,null的
你直接访问null的print()怎么会不出错
声明也写错了..
public void Add(Rectangle rect) <- 不是传的数组吗.. public void Add(Rectangle[] rect)public void Add(Rectangle[] rect)
{
int (int i=0;i <rect.length;i++)
{
if(rect[i] != null)
rect[i].print();
}
}
答:若楼主求a数组(int[] a;)的长度;则可以自己用System.out.print(a.length);验证一下,看输出的数组长度是否与你自己规定长度相等!其实有些小问题自己可以验证的……呵呵:)
int (int i=0;i <rect.length;i++)
{
rect.print();
} 这能循环码?
}
2.既然有异常,就该详细的看下异常的信息,不能涉及到数组就是越界;这里明显是数组未赋值元素空指向异常
这也是数组和集合的不同,集合是可以根据你添加的元素个数来得到你集合的长度的。所以LZ你例子中只添加了2个元素,循环遍历整个数组并使用数组中元素的时候,会出现空指针异常。
楼主可以在使用前加一个判定
if(rect!=null){
}
写程序的时候要习惯这么写来防止空指针,
还有,LZ.下次帖的程序一定要是IDE编译通过的哦。