首页 > 解决方案 > 编译时出错:- 表达式的类型必须是数组类型,但它被解析为 Object

问题描述

错误:- 表达式的类型必须是数组类型,但解析为 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 时,我在编译时收到此错误。请帮帮我

标签: javaarrays

解决方案


这会很好用!

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);
    }
}

推荐阅读