java核心技术I中158页有这句,return String.format("an employee with a salary of $%.2f", salary);,salary是double型的,可是API文档中是public static String format(String format,Object... args),后面应该是Object型才对啊,为什么呢

解决方案 »

  1.   

    Java里的一切类都派生于Object类。而且Object...是不定参数,类似于Object[]。
      

  2.   

    可是double型的应该不属于Object对象才对啊,它不是一个对象
      

  3.   

    而且照书中输入下面代码是错误的,编译不通过format那里
    class Employee extends Person{
    private double salary;
    private Date hireDay; public Employee(String n,double s,int year,int month,int day){
    super(n);
    salary=s;
    GregorianCalendar calendar=new GregorianCalendar(year,month-1,day);
    hireDay=calendar.getTime();
    } public Date getHireDay() {
    return hireDay;
    } public double getSalary() {
    return salary;
    }
    public String getDescription(){
    return String.format("an employee with a salary of $%.2f", salary);
    }
    public void raiseSalary(double byPercent){
    double raise=salary*byPercent/100;
    salary+=raise;
    }
    }
      

  4.   

    你是JDK什么版本的?应该是版本问题吧...
      

  5.   

    是jdk1.6.0_10版本,显示的错误是The method format(String, Object[]) in the type String is not applicable for the arguments (String,double)
      

  6.   

    知道了,原来在Eclipse中项目文件那里没有设置jdk版本
      

  7.   

    楼主的JDK版本应该设置成5.0以上才行