public class Main { public class Mouse { int tizhong; String color; public int getTizhong() { return tizhong; } public void setTizhong(int tizhong) { this.tizhong = tizhong; } public String getColor() { return color; } public void setColor(String string) { this.color = string; } } public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc = new Scanner(System.in); while (sc.hasNext()) { int n=sc.nextInt(); Mouse []mouse =new Mouse[n]; for(int i=0;i<n;i++) { mouse[i].setTizhong(sc.nextInt()); mouse[i].setColor(sc.next()); } mouse=sort(mouse,n); for(int i=0;i<n;i++) { System.out.println(mouse[i]); } } sc.close(); } static Mouse[] sort(Mouse mouse[],int n){ for(int i=0;i<n;i++) { for(int j=0;j<n-i;j++) { if(mouse[j].tizhong<mouse[j+1].tizhong) { Mouse temp = mouse[j]; mouse[j]=mouse[j+1];mouse[j+1]=temp;} } } return mouse; } }给类赋值时一直报错,不知道为什么错了,求大神解惑
首先重现你的问题。
请注意看报错信息说的报错行数是31行。在31行你给数组元素赋值,但是你并没有先初始化数组的元素。需要先初始化一下。
修改如下:
修改之后运行,
可以了,但是你的排序方法有问题,索引超出范围了,自己使用debug调理下即可。