Java中反射学习系列教程四-常用API方法(二)
- 反射
- 时间:2019-06-25 23:02
- 7107人已阅读
🔔🔔🔔好消息!好消息!🔔🔔🔔
有需要的朋友👉:联系凯哥
本文是《Java中反射学习系列教程》中的第四篇文章。本文我们接着之前的讲解。
先来看看今天学习主要内容:
1:获取实例化对象的所有属性
2:获取实例化对象的所有方法
4.2.6 获取对象中属性
我们知道对象中的属性根据权限不同可以使用不同修饰符来修饰。这里我们就来研究public和private修饰的属性获取。
GetFields:获取所有public属性
GetDeclaredFields:获取所有属性。包含private的
Demo示例代码:
/**
* 获取属性
* 1:pubic属性获取
* 2:所有属性获取
*/
@Test
public void getFieldTest() throws Exception{
Class<?> clazz1 = Class.forName("com.kaigejava.domain.Student");
//1:获取public的单个属性
Field addrField = clazz1.getField("addr");
log.info("获取public addr..");
//获取所有公开的属性
Field[] publicFieldS = clazz1.getFields();
for(int x = 0;x < publicFieldS.length;x++){
Field field = publicFieldS[x];
log.info("获取到所有pulibc的属性.当前获取第:{}个。属性名称为:{}",x,field.getName());
}
//获取单个属性(private)
Field privateSchooleName = clazz1.getDeclaredField("schoolName");
//获取所有属性 包含public private的
Field [] allField = clazz1.getDeclaredFields();
for(int x = 0;x < allField.length;x++){
Field field = allField[x];
log.info("获取到所有的属性.当前获取第:{}个。属性名称为:{}",x,field.getName());
}
}
查看student的属性:
运行结果:
4.2.7 获取对象中方法
方法和属性类似。都分为public和private的。所以:
获取public方法是:getMethod
获取所有方法(包含private的):getDeclaredMethod
这里咱们就只演示获取单个public方法:
Demo演示代码:
/**
* 获取方法
* @throws Exception
*/
@Test
public void getMethodTest()throws Exception{
Class<?> clazz1 = Class.forName("com.kaigejava.domain.Student");
Class<?> methodParams[] = new Class[]{String.class};
Method publicSetRealName = clazz1.getMethod("setRealName",methodParams);
log.info("方法名称为:{},方法参数为:{}",publicSetRealName.getName(),publicSetRealName.getGenericParameterTypes());
}
运行结果:
今日总结:
温馨提示:本文是系列教程中的一篇文章。
上一篇: 稍微总结一下。怎样读源码