程序填空题:使用反射机制调用类的方法
利用反射机制中的方法对象,可以间接地调用类的方法。
java
import java.lang.reflect.*;//必须引入反射类库,才能使用属性对象
class Employee {
private String name;
private double salary;
Employee(String name,double salary) {
this.name=name;
this.salary=salary;
}
public String toString() {
return "[姓名:"+name+",工资:"+salary+"]";
}
public void raiseSalary(double times) {//按倍数涨薪
this.salary = this.salary*times;
}
}
public class Main {
@SuppressWarnings({ "unchecked", "rawtypes" })
public static void main(String[] args) throws Exception {
Class cls=Employee.class; //通过类名获取类信息
Method mtd= ; //获取方法对象
Employee emp= new Employee("张三",8000);
mtd. ; //调用方法,涨薪 1.2 倍
System.out.println(emp);
}
}
答案:
第1空:cls.getMethod("raiseSalary", double.class)
第2空:invoke(emp, 1.2)
java
import java.lang.reflect.*;//必须引入反射类库,才能使用属性对象
class Employee {
private String name;
private double salary;
Employee(String name,double salary) {
this.name=name;
this.salary=salary;
}
public String toString() {
return "[姓名:"+name+",工资:"+salary+"]";
}
public void raiseSalary(double times) {//按倍数涨薪
this.salary = this.salary*times;
}
}
public class Main {
@SuppressWarnings({ "unchecked", "rawtypes" })
public static void main(String[] args) throws Exception {
Class cls=Employee.class; //通过类名获取类信息
Method mtd= ; //获取方法对象
Employee emp= new Employee("张三",8000);
mtd. ; //调用方法,涨薪 1.2 倍
System.out.println(emp);
}
}
答案:
第1空:cls.getMethod("raiseSalary", double.class)
第2空:invoke(emp, 1.2)