Java 无法取消对int的引用错误

Java 无法取消对int的引用错误,java,Java,在下面的代码中,我有int不能被取消引用的错误,我有//错误在这里。我很困惑,因为变量b用于引用行中后面emp数组中的一个点,而没有显示为错误。那么我该如何解决这个问题,为什么会产生错误呢? 我将感谢任何帮助。示例代码也很好,因为这似乎是我学习最好的方式。谢谢 public static void bubbleSort(Employee[] empl) { for (int a = 1; a < empl.length; a++) { for (int b

在下面的代码中,我有int不能被取消引用的错误,我有//错误在这里。我很困惑,因为变量b用于引用行中后面emp数组中的一个点,而没有显示为错误。那么我该如何解决这个问题,为什么会产生错误呢? 我将感谢任何帮助。示例代码也很好,因为这似乎是我学习最好的方式。谢谢

public static void bubbleSort(Employee[] empl) {
    for (int a = 1; a < empl.length; a++) 
    {
        for (int b = 0; b < empl.length - a; b++) 
        {
            if (((empl[b].//error is here
                    getEmployeeNumber()).compareTo
                   ((empl[b + 1].getEmployeeNumber()))) > 0) 
            {
               // swap employees[b] with employees[b+1]
               Employee temp = empl[b];
               empl[b] = empl[b + 1];
               empl[b + 1] = temp;
            }
        }
    }
}
publicstaticvoidbubblesort(雇员[]雇员){
对于(int a=1;a0)
{
//将员工[b]与员工[b+1]交换
员工临时工=员工[b];
emp[b]=emp[b+1];
雇员[b+1]=温度;
}
}
}
}
编辑:欢迎按员工编号对数组进行排序的任何其他建议。

getEmployeeNumber()
显然会返回一个
int

int
是基本类型,而不是对象。

因此,不能对其调用类似
compareTo()
的方法。

emp不应为空,emp.lenth-a也应为正integer@MarcB是,填充数组时将有一个EmployeeNumber[0]条目。是的,getEmployeeNumber()返回一个int。我不明白的是Employ[b]给出了一个错误,而Employ[b+1]没有。此外,我使用了相同的代码,在其中我将getEmployeeNumber与getLastName切换以比较两个字符串。它在遇到
Employ[b]
元素之前遇到
Employ[b+1]
元素,因此它首先抛出此错误是有意义的。不能对未绑定的基元类型调用方法!为什么不把整数比较成。。。整数,而不是使用
compareTo()
?@user1690240那么,
String
s是实对象,并且有一个
。compareTo()
,int不是。而且
emp[b+1]
不会给出错误,因为您没有取消引用它。