-1

好的,所以我有一个 A 类和一个 B 类,A 类包含一个 B 数组,这是我在数组中添加一个新 B 的代码。

public void addNewB(B b){
  course[noOfBs]= b;
  noOfBs++;
}

Java说'表达式的类型必须是数组类型但它解析为B'

我添加到数组的理论是因为 noOfB 是数组中的下一个空索引(假设没有被删除),所以这段代码只会将 B 放在下一个空槽中。

为什么这不起作用?!:((抱歉布局不佳,我无法开发这个网站!)

4

2 回答 2

3

该错误表明您的变量的类型course实际上是B,而不是B[]。看看声明 - 我很确定你会发现它看起来像这样:

B course;

如果不是这种情况,请编辑您的问题以包含声明。

另外,考虑使用 a List<B>,因此您可以使用:

public void addNewB(B b) {
    course.add(b);
}

...并完全删除您的noOfBs变量。

于 2012-11-28T14:38:56.617 回答
0

我认为你做错了什么。因为你没有给出完整的信息。我会假设你的声明或你调用函数的方式可能是错误的。这应该有效。

B course[]=new B[MAX_COURSES]; /* This declares an array of refereneces */

public void addNewB(B b){
  course[noOfBs]= b;
  noOfBs++;
}

调用函数:

B course1=new B(); b.setCourseName("....") /* Make the object of B */
addNew(course1);
于 2012-11-28T14:55:32.740 回答