不兼容的类型int []无法转换为int错误

时间:2017-01-13 02:53:32

标签: java arrays

尝试从单独的跑步者程序中调用的.dat文件中引入成绩值和名称值。这个其他java文件中的类是为我们开始的,我们必须"实例化两个数组......"和"使用for-loop ..."

我收到错误

Incompatible types: int[] cannot be converted to int" error for "grades[i]=g;" and the corresponding String error for "names[i]=n;

思想?

public GradeBook(int[] g, String[] n, int num)
{
    // **instantiate both arrays with 'num' objects
            String []names=new String[num];
            int[] grades=new int[num];
    //**use a for-loop to assign each name and grade with the incoming values
            for(int i=0;i<num;i++)
            {
                names[i]=n;
                grades[i]=g;
            }
}

1 个答案:

答案 0 :(得分:0)

我假设你的实际代码应该是这样的:

public class GradeBook {
    private String[] names;
    private int[] grades;

    public GradeBook(int[] g, String[] n) {
        names = n;
        grades = g;
    }
}

只需在构造函数中指定传入的成绩和名称。您不必担心传入数组的长度,因为调用者必须处理此问题,可能是在读取.dat文件时。此处也不需要迭代。

如果您确实需要将作为输入传递的数组的副本复制到构造函数中,那么您可以使用System.arraycopy()

public class GradeBook {
    private String[] names;
    private int[] grades;

    public GradeBook(int[] g, String[] n) {
        names = new String[n.length];
        grades = new int[g.length];
        System.arraycopy(n, 0, names, 0, n.length);
        System.arraycopy(g, 0, grades, 0, g.length);
    }

请注意,如果调用构造函数的代码计划在稍后修改数组,则只需要复制。