晕, clone()函数里 return 错!
       return cloned;

解决方案 »

  1.   

    哪里的程序啊?
    去网上下载最新的源代码
    /**
       @version 1.31 2004-02-19
       @author Cay Horstmann
    */import java.util.*;public class CalendarTest
    {  
       public static void main(String[] args)
       {  
          // construct d as current date
          GregorianCalendar d = new GregorianCalendar();      int today = d.get(Calendar.DAY_OF_MONTH);
          int month = d.get(Calendar.MONTH);      // set d to start date of the month
          d.set(Calendar.DAY_OF_MONTH, 1);      int weekday = d.get(Calendar.DAY_OF_WEEK);      // print heading
          System.out.println("Sun Mon Tue Wed Thu Fri Sat");      // indent first line of calendar
          for (int i = Calendar.SUNDAY; i < weekday; i++ )
             System.out.print("    ");      do
          {  
             // print day
             int day = d.get(Calendar.DAY_OF_MONTH);
             System.out.printf("%3d", day);         //  current day with *
             if (day == today)
                System.out.print("*");
             else
                System.out.print(" ");         // start a new line after every Saturday
             if (weekday == Calendar.SATURDAY)
                System.out.println();         // advance d to the next day
             d.add(Calendar.DAY_OF_MONTH, 1);
             weekday = d.get(Calendar.DAY_OF_WEEK);
          } 
          while (d.get(Calendar.MONTH) == month);
          // the loop exits when d is day 1 of the next month      // print final end of line if necessary
          if (weekday != Calendar.SUNDAY)
             System.out.println();
       }
    }
      

  2.   

    晕,粘错了,应该这个
    /**
       @version 1.10 2002-07-01
       @author Cay Horstmann
    */import java.util.*;public class CloneTest
    {  
       public static void main(String[] args)
       {  
          try
          {
             Employee original = new Employee("John Q. Public", 50000); 
             original.setHireDay(2000, 1, 1);
             Employee copy = original.clone();
             copy.raiseSalary(10);
             copy.setHireDay(2002, 12, 31);
             System.out.println("original=" + original);
             System.out.println("copy=" + copy);
          }
          catch (CloneNotSupportedException e) 
          { 
             e.printStackTrace(); 
          }
       }
    }class Employee implements Cloneable
    {  
       public Employee(String n, double s)
       {  
          name = n;
          salary = s;
       }   public Employee clone() throws CloneNotSupportedException
       {
          // call Object.clone()
          Employee cloned = (Employee)super.clone(); 
          
          // clone mutable fields
          cloned.hireDay = (Date)hireDay.clone();
          
          return cloned;
       }   /**
          Set the hire day to a given date
          @param year the year of the hire day
          @param month the month of the hire day
          @param day the day of the hire day
       */
       public void setHireDay(int year, int month, int day)
       {
          hireDay = new GregorianCalendar(year, month - 1, day).getTime();
       }   public void raiseSalary(double byPercent)
       {  
          double raise = salary * byPercent / 100;
          salary += raise;
       }   public String toString()
       {
          return "Employee[name=" + name
             + ",salary=" + salary
             + ",hireDay=" + hireDay
             + "]";
       }   private String name;
       private double salary;
       private Date hireDay;
    }
      

  3.   

    地址:http://www.phptr.com/corejava 基于JDK1.5的第七版源代码
      

  4.   

    我贴出来的代码是第六版的代码,是我照着书上打的(类名我变了)angues1980贴的代码是最初的版本,2002-07-01怎么可能是最新的啊?在声明中clone()是一个Employee类型的方法,它返回的cloned也是Employee类型
    在编译的时候,Eclipse说返回的类型和Object.clone()不匹配!也就是说,它要求返回一个Object类型的对象   public Employee clone() throws CloneNotSupportedException
       {
          ………………      
          return cloned;
       }