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

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

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

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

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

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

23e275c65fa84a0d7382bc3964155055.png

4.2.6 获取对象中属性

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

GetFields:获取所有public属性

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

e7f021e58bc49b51d40f3d79e6475fdf.png

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());

}

}

12d30fd9acfa868d8dae7548bbae99b0.png

查看student的属性:

4e190d9c5dd794d73028715ab5387d0b.png

运行结果:

aba75a864be6e9d4ae9d46daadac3767.png

4.2.7 获取对象中方法

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

获取public方法是:getMethod

获取所有方法(包含private的):getDeclaredMethod

bee9cc17d8cb034f534de6bae488777b.png

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

}

a6a42ee78cd82a24207bea2cef9b95f0.png

运行结果:

94825c1a78953772cbd3ccfbfdbfd63c.png

今日总结:

415e01233acbf269da01683e395141e9.png

温馨提示:本文是系列教程中的一篇文章。返回搜狐,查看更多

责任编辑:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值