day07 Class_field_method_反射
Class cls=Class.forName("model.Dog"); Class cls1=Class.forName("model.Person");
cls =Dog.class;
Class cls= this.getClass();
System.out.println(cls.getName()); System.out.println(cls.getSimpleName());
int modi = cls.getModifiers(); System.out.println(modi);
Field field = cls.getField("name");
Field[] fields = cls.getFields(); System.out.println(fields.length);
Field declaredField = cls.getDeclaredField("gender");
Field[] declaredFields = cls.getDeclaredFields(); System.out.println(declaredField);
Method method = cls.getMethod("run", String.class,int.class);
Method[] methods = cls.getMethods();
Method declaredMethod = cls.getDeclaredMethod("eat", null);
Method[] declaredMethods = cls.getDeclaredMethods();
Object obj = cls.newInstance(); System.out.println(obj);
Constructor c = cls.getConstructor(String.class); c.newInstance("aaa");
Field[] declaredField =cls.getDeclaredFields(); for (Field filed:declaredField) { System.out.println(filed.getName()); }
Field field =cls.getDeclaredField("gender");
System.out.println(field.getName());
Class strcls =field.getType(); System.out.println(strcls.getName());
int modifiers =field.getModifiers(); System.out.println(modifiers);
Dog d = new Dog("旺财","母"); System.out.println(d.getGender());
field.setAccessible(true);
field.set(d, "公"); System.out.println(d.name); System.out.println(field.get(d));
Method m=cls.getDeclaredMethod("run",String.class,int .class); Method m=cls.getDeclaredMethod("eat",null);
System.out.println(m.getName());
Class returntype = m.getReturnType(); System.out.println(returntype.getName());
Class[] paraType = m.getParameterTypes(); for (int i = 0; i < paraType.length; i++) { System.out.println(paraType[i].getName()); }
int modifiers = m.getModifiers(); System.out.println(modifiers); Dog d = new Dog("旺财", "母");
m.invoke(d, "aaa",123);
m.invoke(null,null);
Person p=new Person();
//使用反射相关类,为对象p设置name属性的值
Class cls=p.getClass();
Field[] fs=cls.getDeclaredFields();
for (int i = 0; i < fs.length; i++) {
Field f = fs[i];
if(f.getName().equals("name")) {
String setName = "set"+f.getName().substring(0, 1).toUpperCase()+ f.getName().substring(1);
//设置器的形参和属性的类型应当一致
Method m = cls.getDeclaredMethod(setName, f.getType());
//相当于p方法调用了setName方法
m.invoke(p, "张山");
}
}
System.out.println(p.getName());
day07 Class_field_method_反射的更多相关文章
- Day07 jdk5.0新特性&Junit&反射
day07总结 今日内容 MyEclipse安装与使用 JUnit使用 泛型 1.5新特性 自动装箱拆箱 增强for 静态导入 可变参数方法 枚举 反射 MyEclipse安装与使用(yes) 安装M ...
- python开发学习-day07(面向对象之多态、类的方法、反射、新式类and旧式类、socket编程)
s12-20160227-day07 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: ...
- Python面向对象-day07
写在前面 上课第七天,打卡: 时间的高效利用: 前言: 今天egon老师补充了下 is 和 == 的区别,整理如下:Python中变量的属性以及判断方法 一.面向过程和面向对象 - 1.面向过程 核心 ...
- JAVA学习笔记—review基本知识[反射与异常]
JAVA学习笔记—review基本知识[反射与异常] 1.异常: 1.1异常的分类: Java会将所有的异常封装成对象,其根本父类为Throwable. Throwable有两个子类:Error 和E ...
- 隐私泄露杀手锏 —— Flash 权限反射
[简版:http://weibo.com/p/1001603881940380956046] 前言 一直以为该风险早已被重视,但最近无意中发现,仍有不少网站存在该缺陷,其中不乏一些常用的邮箱.社交网站 ...
- Java学习之反射机制及应用场景
前言: 最近公司正在进行业务组件化进程,其中的路由实现用到了Java的反射机制,既然用到了就想着好好学习总结一下,其实无论是之前的EventBus 2.x版本还是Retrofit.早期的View注解框 ...
- 关于 CSS 反射倒影的研究思考
原文地址:https://css-tricks.com/state-css-reflections 译者:nzbin 友情提示:由于演示 demo 的兼容性,推荐火狐浏览.该文章篇幅较长,内容庞杂,有 ...
- 编写高质量代码:改善Java程序的151个建议(第7章:泛型和反射___建议106~109)
建议106:动态代理可以使代理模式更加灵活 Java的反射框架提供了动态代理(Dynamic Proxy)机制,允许在运行期对目标类生成代理,避免重复开发.我们知道一个静态代理是通过主题角色(Prox ...
- 运用Mono.Cecil 反射读取.NET程序集元数据
CLR自带的反射机智和API可以很轻松的读取.NET程序集信息,但是不能对程序集进行修改.CLR提供的是只读的API,但是开源项目Mono.Cecil不仅仅可以读取.NET程序集的元数据,还可以进行修 ...
随机推荐
- 菜鸟如何反转到资深Web安全工程师
90后理工男,计算机专业,毕业于985院校,从事Web安全工作,两年多的时间里先后跳槽3家公司,跳槽理由主要有以下几点:加班多.薪资低.工作内容枯燥,不想安于现状,寄希望于通过跳槽找到一个“钱多.活少 ...
- API做翻页的两种思路
在开发API的时候,有时候数据太多了,就需要分页读取. 基于偏移量的分页(Offset-based) 这种方式就是会提供一个每页笔数(page size)来定义返回条目的最大数,提供一个页数(page ...
- Vue 进阶之路(七)
之前的文章我们对 vue 的列表输出做了介绍,本章我们来看一下 vue 的组件 component. <!DOCTYPE html> <html lang="en" ...
- 将个人博客从GitHub迁移至阿里云服务器过程总结
让我们先回顾下前两篇博客: 程序员如何从0到1搭建自己的技术博客 在个人博客中优雅的使用Gitalk评论插件 通过前两篇博客,我们了解了如何快速的从0到1搭建一个个人博客并使用了Gitalk评论插件, ...
- Activity简介
声明周期 4种状态 running / paused / stopped / killed 声明周期 activity启动 --->onCreate() -->onStart()---& ...
- Jmeter接口测试-断言
JMeter接口测试-断言 对应qq群号:616961231 一个http请求发出,怎么判断执行的是否正确呢? 通过检查服务器响应数据,是否符合预期的数据, 如果是,任务成功, 如果否, 任务失败 ...
- Nginx反向代理解决iframe跨域问题
前言 这几天有个需求:做个表单页面,要求后台人员能自定义发布表单,用户来填写表单.我一想,这不麦克表单有现成的吗,拿来就用!发布表单后,可以选择使用iframe方式嵌入网站,一切顺利. 当时的网站是h ...
- VS2017搭建驱动开发环境WDK
先安装VS2017,然后在安装WDK,WDK会自动关联到VS2017中,不用你任何操作,自动在新建项目中可以找到驱动开发. 如果以上安装完成后,在VS2017中新建项目中没有发现WDK,那么需要进行修 ...
- .Net Core 爬坑日记
安装[DotNetCore.1.0.1-VS2015Tools.Preview2.0.3.exe]失败 查看log发现,发现猫腻,然后copy下链接,用迅雷手动下载[AspNetCoreLocalFe ...
- PHP全栈学习笔记9
php的会话控制,什么是会话控制,http等. 什么是会话控制思想,http协议. cookie 和 session http是超文本传输协议,是网络上最广泛的一种网络协议. http最大特点是无连接 ...