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)程序为书上一 例子,麻烦哪位大侠帮忙看看!谢谢
{ /**
* @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)程序为书上一 例子,麻烦哪位大侠帮忙看看!谢谢
用命令行也报一大堆错。
name=Harry Hacker,salary=35000.0
name=Tony Tester,salary=38000.0
name=Carl Cracker,salary=75000.0
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上的?
将报错百度出来是说 javaw配置有错,我也检查了。
邪了!