java里面数组之间的强制转换

}else{//排序//Studentstu[]=newStudent[list.size()+1];Studentstu[]=(Student[])list.toArr... }else{ //排序
//Student stu[]= new Student[list.size()+1];

Student stu[] = (Student [])list.toArray();
//Arrays.sort(stu);
/*
for(int i=0;i<stu.length;i++){
jTextArea1.append(stu[i].toString());
jTextArea1.append("\n");
}
*/
/*
for(Student k :stu){
jTextArea1.append(k.toString());
jTextArea1.append("\n");
}

*/
}

}
}
以上是部分代码,我想问下使用Arrays.sort()这个方法排序,需要转换一个集合到一个数组,但是不能强制转换,我知道Arrays.sort()返回一个Object[]类型的变量,但是我想这么写:
//Student stu[]= new Student[list.size()+1];

Student stu[] = (Student [])list.toArray();
//Arrays.sort(stu);

哪里有问题??

//ps:我会使用Collections.sort(),不需要这种方法,谢谢。

以下是关于Student类:
public class Student implements Comparable<Student>{
String name;
int score;
public Student(String name,int score){
this.name=name;
this.score=score;
}
public String toString(){
return "name:"+name+" score:"+score;
}
public int compareTo(Student obj){
return obj.score-this.score;
}
}
已经实现了Comparable接口!
速求,谢谢
展开
 我来答
yu2363672
2014-12-17
知道答主
回答量:13
采纳率:0%
帮助的人:15.8万
展开全部
你这么写不就等于把Student[]强转成Object[],编译肯定不过啊。
你可以试试 Student[] stu = list.toArray(stu);
追问
什么意思?方法的返回值不是一个Object[]类型的吗?把他转换成Student[]不对吗……
试过了,答案不对……还是编译不过去
追答
我的意思是
Student[] stu = new Student[list.size()];
stu = list.toArray(stu);
你直接把Object[]类型转换为Student[]当然不对。
因为你是把一个父类型转换为了一个子类型,编译会报错。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式