Java中反射学习系列教程四-常用API方法(二)

Java中反射学习系列教程四-常用API方法(二)

凯哥java 凯哥java
本文是《Java中反射学习系列教程》中的第四篇文章。本文我们接着之前的讲解。

先来看看今天学习主要内容:

1:获取实例化对象的所有属性

2:获取实例化对象的所有方法

Java中反射学习系列教程四-常用API方法(二)
4.2.6 获取对象中属性

我们知道对象中的属性根据权限不同可以使用不同修饰符来修饰。这里我们就来研究public和private修饰的属性获取。

GetFields:获取所有public属性

GetDeclaredFields:获取所有属性。包含private的

Java中反射学习系列教程四-常用API方法(二)
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());
}
}

Java中反射学习系列教程四-常用API方法(二)
查看student的属性:

Java中反射学习系列教程四-常用API方法(二)
运行结果:

Java中反射学习系列教程四-常用API方法(二)
4.2.7 获取对象中方法

方法和属性类似。都分为public和private的。所以:

获取public方法是:getMethod

获取所有方法(包含private的):getDeclaredMethod
Java中反射学习系列教程四-常用API方法(二)

这里咱们就只演示获取单个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());
}

Java中反射学习系列教程四-常用API方法(二)

运行结果:
Java中反射学习系列教程四-常用API方法(二)

今日总结:
Java中反射学习系列教程四-常用API方法(二)

温馨提示:本文是系列教程中的一篇文章。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章