为什么在测试类排序会报错

为什么在测试类排序会报错

public class Student {
    //成员变量
    private int id;
    private int age;
    private String name;
    
    //构造方法
    public Student(){}
    public Student(int id,int age,String name){
        this.setId(id);
        this.setAge(age);
        this.setName(name);
    }
    
    //getter和setter方法
    public void setId(int id){
        this.id=id;
    }
    public int getId(){
        return this.id;
    }
    public void setAge(int age){
       this.age=age;
    }
    public int getAge(){
     return this.age;
    }
    public void setName(String name){
        this.name=name;
    }
    public String getName(){
        return this.name;
    }
    
    //toString()方法
    public String toString(){
        return "[学号:"+this.getId()+"年龄:"+this.getAge()+"姓名:"+this.getName()+"]";
    }
    
}


public class StudentTest implements Comparator<Student>{
    
    //实现接口中的方法
    public int compare(Student o1, Student o2) {
		String s1=o1.getName();
		String s2=o2.getName();
		int n=s1.compareTo(s2);
		return n;
	}
    
    public static void main(String[] args){
        //定义Student类的对象
        Student stu1=new Student(12,23,"peter");
        Student stu2=new Student(16,18,"angel");
        Student stu3=new Student(61,20,"tom");
        
        //将对象添加到List中
        List<Student> list=new ArrayList<Student>();
        list.add(stu1);
        list.add(stu2);
        list.add(stu3);
        System.out.println("排序前:");
        
        //输出排序前的数据
        for(Student stu:list){
            System.out.println(stu);
        }
    
        
        //输出排序后的数据
       Collections.sort(list, new StudentTest());
       System.out.println("排序后:");
       for(Student stu:list){
            System.out.println(stu);
        }
    }
}


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

3回答
元气豪泽 2020-04-29 08:33:00

亲,在测试类当中没有导入包:

import java.util.ArrayList;

import java.util.Collections;

import java.util.Comparator;

import java.util.List;


以前的编程题编译器都是帮我们提前导入好的,这次需要我们自己手动导入

好帮手慕小尤 2020-03-12 11:02:35

同学你好,可能是编译的问题,建议同学重新编译。如下图所示:

http://img1.sycdn.imooc.com//climg/5e69a63c0924f81b01910214.jpg

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

好帮手慕小尤 2020-03-11 17:36:37

同学你好,测试代码并没有报错,如下图所示:

http://img1.sycdn.imooc.com//climg/5e68b0d00936bfc703910256.jpg

报错可能是同学没有引入相应的包,建议同学引入。如下图所示:

http://img1.sycdn.imooc.com//climg/5e68b102098c858e07830195.jpg

如果还存在问题,建议同学反馈相应报错信息。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 提问者 慕粉1705037409 #1
    StudentTest.java:43: error: cannot find symbol Collections.sort(list, new StudentTest()); ^ symbol: variable Collections location: class StudentTest 1 error 报错原因如上 包已经导入了
    2020-03-11 19:48:20
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师