错误:-表达式的类型必须是数组类型,但已解析为Object
class ArrayExample{
private Object[] objArray = new Object[4];
private int number = 0;
public void add(Object obj) {
if(number == objArray.length) {
increaseCapacity();
}
objArray[number] = obj;
number++;
}
public void increaseCapacity() {
int newCapacity = objArray.length*2;
Object NewArray = new Object[newCapacity];
for(int i=0; i<objArray.length; i++) {
NewArray[i] =objArray[i];
}
objArray = NewArray;
}
public String toString() {
String str="";
int num = 0;
while(objArray[num] != null) {
str = str+ objArray[num];
num++;
}
return str;
}
}
public class ObjectArray {
public static void main(String[] args) {
ArrayExample col= new ArrayExample();
col.add("chandan");
col.add(10);
col.toString();
System.out.println(col);
}
}
错误:-当我尝试使用for循环将objArray复制到NewArray时,在编译时出现了此错误。请帮帮我
答案 0 :(得分:0)
问题是您已将NewArray定义为普通的对象变量,它应该是对象数组
Object[] NewArray = new Object[newCapacity]; code here
答案 1 :(得分:0)
这会很好!
public class ArrayExample {
private Object[] objArray = new Object[4];
private int number = 0;
public void add(Object obj) {
if(number == objArray.length) {
increaseCapacity();
}
objArray[number] = obj;
number++;
}
public void increaseCapacity() {
int newCapacity = objArray.length*2;
Object NewArray[];
NewArray = new Object[newCapacity];
System.arraycopy(objArray, 0, NewArray, 0, objArray.length);
objArray = NewArray;
}
@Override
public String toString() {
String str="";
int num = 0;
while(objArray[num] != null) {
str = str+ objArray[num];
num++;
}
return str;
}
}
public class ObjectArray {
public static void main(String[] args) {
ArrayExample col= new ArrayExample();
col.add("chandan");
col.add(10);
col.toString();
System.out.println(col);
}
}