public class ParamTest { public static void main(String[] args) {

    System.out.println("Testing tripleValue");
    double percent = 10;
    System.out.println("Before: percent="+percent);
    tripleValue(percent);
    System.out.println("After: percent="+percent);
    System.out.println("\nTesting tripleSalary:");
    Employee harry = new Employee("Harry",50000);
    System.out.println("Before: salary="+harry.getSalary());
    tripleSalary(harry);
    System.out.println("After: salary="+harry.getSalary());
    System.out.println("\nTesting swap:");
    Employee a = new Employee("Alice",70000);
    Employee b = new Employee("Bob",60000);
    System.out.println("Before: a = "+a.getName()+"  "+"b = "+b.getName());
    swap(a,b);
    System.out.println("After: a = "+a.getName()+"  "+"b = "+b.getName());
    
    
}
   public static void tripleValue(double x)
   {
   x=3*x;
   System.out.println("End fo method: x=" +x);
   }
   public static void tripleSalary(Employee x)
   {
   x.raiseSalary(200);
   System.out.println("End of method: salary ="+x.getSalary());
  
   }
   public static void swap(Employee x,Employee y)
   {
   Employee temp = x;
   x = y;
   y = temp;
   System.out.println("End of method: x="+x.getName()+"  y="+y.getName());
   }
} class 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;
    }
    private String name;
    private double salary;
 
 }
报错:efore: salary=50000.0
Exception in thread "main" java.lang.NoSuchMethodError: Employee.raiseSalary(D)V
at ParamTest.tripleSalary(ParamTest.java:32)
at ParamTest.main(ParamTest.java:14)
请问这个是什么问题?

解决方案 »

  1.   

     x.raiseSalary(200); 
    把他改个double型
     x.raiseSalary(Double.valueOf(200)); 
      

  2.   

    No error!啊 ...我晕...Testing tripleValue
    Before: percent=10.0
    End fo method: x=30.0
    After: percent=10.0Testing tripleSalary:
    Before: salary=50000.0
    End of method: salary =150000.0
    After: salary=150000.0Testing swap:
    Before: a = Alice  b = Bob
    End of method: x=Bob  y=Alice
    After: a = Alice  b = Bob
      

  3.   

    不会啊,我用eclipse运行就是有错的,还是报:Testing tripleValue
    Before: percent=10.0
    End fo method: x=30.0
    After: percent=10.0Testing tripleSalary:
    Before: salary=50000.0
    Exception in thread "main" java.lang.NoSuchMethodError: Employee.raiseSalary(D)V
    at ParamTest.tripleSalary(ParamTest.java:32)
    at ParamTest.main(ParamTest.java:14)
    为什么会是这样啊?
      

  4.   

    在classic Employee  报错,出现已定义类型 Employee,这个是什么意思?
      

  5.   

    没有错误啊,楼主的JDK是好多版本的哦