黑马程序员技术交流社区
标题:
看完反射的一点小总结,分享下
[打印本页]
作者:
朙兲
时间:
2015-6-27 19:31
标题:
看完反射的一点小总结,分享下
使用反射获取Method,可以使用
getMethod
(
String
name,
Class
<?>... parameterTypes)来获取,第一个参数是方法的名字,第二个是参数类表。
但是这个方法没参数呢?比如:
一个简单的Person 类
public class Person {
public String name="zhangsan";
public int age;
public String str1 = "ball";
public String str2 = "baskecballl";
public Person(){
this.str1=str1;
this.str2=str2;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Person [age=" + age + ", name=" + name + ", str1=" + str1
+ ", str2=" + str2 + "]";
}
}
复制代码
如果是调用set方法很简单,根据规则
Method methodName = p.getClass().getMethod("setName",String.class);
System.out.println(methodName.invoke(p, "张三"));
复制代码
这样就获取了,但是如果是get 方法呢,参数列表是空,怎么做的?
这样可以
Method methodName = p.getClass().getMethod("getName",null);
System.out.println(methodName.invoke(p,null));
复制代码
这样更好
Method methodName = p.getClass().getMethod("getName");
System.out.println(methodName.invoke(p));
复制代码
作者:
曹乐乐
时间:
2015-6-28 18:35
很快进货价
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2