博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java反射机制
阅读量:6958 次
发布时间:2019-06-27

本文共 1595 字,大约阅读时间需要 5 分钟。

1. 什么是反射

反射java语言中的一种机制,通过这种机制可以动态的实例化对象、读写属性、调用方法

2一切反射相关的代码都从获得类(java.lang.Class)对象开始

2.1 Class.forName(完整类名)

Class clzz=Class.forName("com.zking.refect.Student");		System.err.println(clzz);  

结果

class com.zking.refect.Student

  

2.2 类名.class

Class clzz=Student.class; System.err.println(clzz);

结果

class com.zking.refect.Student

2.3 对象.getClass()

Student s = new Student();Class clzz = s.getClass(); System.out.println(clzz);

结果

class com.zking.refect.Student

  

3. 反射三大作用(java.lang.reflect.*)

3.1 实例化对象
c.newInstance()

Constructor.getConstructor/Constructor.getDeclaredConstructor

注:一定要提供无参构造器

Class
clz=Student.class; //反射调用无参构造方法创建学生对象 Student stu=(Student) clz.newInstance(); System.out.println(stu);

结果

调用无参构造方法创建了一个学生对象

 

3.2 动态调用方法

Method m;
m.invoke

Student stu=new Student();	Class clz=stu.getClass();	Method m=clz.getDeclaredMethod("hello");	m.invoke(stu);

结果

你好!我是null

3.3 读写属性

Field set/get

Student stu=new Student("s002","zs");Class clz=stu.getClass();	Field field=clz.getDeclaredField("age");	field.set(stu, 26);	System.out.println(stu);

  结果

Student [sid=s002, sname=zs, age=26]

  

4. 访问修饰符

获取修饰符之后返回的是int类型,并且是一个常量值,

在java中修饰符有11种(6个常用的和5个不常用的)

 

常用的修饰符为:public private protected friendly abstract final

 

不常用的修饰符为: native strictfp synchronizend volatile transiend

 

Student stu=new Student();Class clz=stu.getClass();//获取age的修饰符Field age=clz.getField("age");System.out.println(age.getModifiers());

 结果(1代表的修饰符为public)

1

 

private String sid;	private String sname;	public Integer age;

  

 

  

 

转载于:https://www.cnblogs.com/xmf3628/p/11024550.html

你可能感兴趣的文章
【2013-6-28】零售快消行业最佳实践交流会
查看>>
Nfs 网络文件系统
查看>>
debian或ubuntu修改时区
查看>>
mysql升级:rpm包安装升级
查看>>
SQL Server 2005 XML 操作总结(二)示例
查看>>
测试代码是否按代码风格显示
查看>>
Zabbix 3.4.3 使用SNMP监控H3C交换机端口流量
查看>>
三大家族轻松管理CentOS 7网络属性配置
查看>>
Zabbix汇总分组流量
查看>>
Kali***(二)之被动信息收集——DNS字典爆破
查看>>
MySQL 存储过程
查看>>
UIGestureRecognizer手势
查看>>
Centos6 系列根分区--简单、快速、扩容案例
查看>>
oracle nologging用法
查看>>
nginx 502 Bad Gateway 错误解决办法
查看>>
OSPF 基本配置
查看>>
西门子45亿美元转型,“卖冰箱”到“卖VR”
查看>>
我的友情链接
查看>>
Kafka存储机制是什么?
查看>>
magento 语言包替换
查看>>