package example;import java.util.*;public class EmployeeSortTest
{ /**
 * @param args
 */
public static void main(String[] args) {
// TODO Auto-generated method stub
         Employee[] staff=new Employee[3];
         
         staff[0]=new Employee("Harry Hacker",35000);
         staff[1]=new Employee("Carl Cracker",75000);
         staff[2]=new Employee("Tony Tester",38000);
         
         Arrays.sort(staff);
         
         for(Employee e:staff)
           System.out.println("name="+e.getName()+",salary="+e.getSalary());
}}
          class Employee implements Comparable<Employee>
          {
           public Employee(String n,double s)
           {
           name=n;
           salary=s;
           }
           
           public String getName()
           {
           return name;
          
           }
           
           public double getSalary()
           {
           return salary;
           }
           
           public void raiseSalary(double byPercent)
           {
           double raise=salary*byPercent/100;
           salary+=raise;
           }
           
           public int compareTo(Employee other)
           {
           if(salary<other.salary) return -1;
           if(salary>other.salary) return 1;
           return 0;
           }
           private String name;
           private double salary;
          }
          
编译告警为:
Exception in thread "main" java.lang.ClassCastException: example.Employee cannot be cast to java.lang.Comparable
at java.util.Arrays.mergeSort(Unknown Source)
at java.util.Arrays.sort(Unknown Source)
at example.EmployeeSortTest.main(EmployeeSortTest.java:19)程序为书上一 例子,麻烦哪位大侠帮忙看看!谢谢

解决方案 »

  1.   

    可以确定下你的jdk版本吗? 命令行:java -version
      

  2.   

    谢谢,JDK是1.6的,我用的是 ECLIPSE3.2编译的,我用命令行试试去!
      

  3.   

    我崩溃了,我的JDK是1.6.0-13-b03的啊,是最新的吧
    用命令行也报一大堆错。
      

  4.   

    运行没有问题呀:
    name=Harry Hacker,salary=35000.0
    name=Tony Tester,salary=38000.0
    name=Carl Cracker,salary=75000.0
      

  5.   

    Exception in thread "main" java.lang.ClassCastException: example.Employee cannot be cast to java.lang.Comparable 
    at java.util.Arrays.mergeSort(Unknown Source) 
    at java.util.Arrays.sort(Unknown Source) 
    at example.EmployeeSortTest.main(EmployeeSortTest.java:19) 错误的意思是说你的Employee类不能被转换为Comparable类型。run:
    name=Harry Hacker,salary=35000.0
    name=Tony Tester,salary=38000.0
    name=Carl Cracker,salary=75000.0
    成功生成(总时间:1 秒)我这运行成功。
    估计是你的JDK问题?这个例子是SPRING上的?
      

  6.   

    是java2核心技术第八版上的。
    将报错百度出来是说 javaw配置有错,我也检查了。
    邪了!