package com.smart.reflect;public class Car {private String brand;private String color;private int maxSpeed;//默认构造函数public Car(){}//带参构造函数public Car(String brand, String color, int maxSpeed) {this.brand = brand;this.color = color;this.maxSpeed = maxSpeed;}//未带参方法public void introduce() {System.out.println("brand:" + brand + ";color:" + color + ";maxSpeed:" + maxSpeed);}public String getBrand() {return brand;}public void setBrand(String brand) {this.brand = brand;}public String getColor() {return color;}public void setColor(String color) {this.color = color;}public int getMaxSpeed() {return maxSpeed;}public void setMaxSpeed(int maxSpeed) {this.maxSpeed = maxSpeed;}
}

package com.smart.reflect;import sun.reflect.CallerSensitive;import java.lang.reflect.Constructor;
import java.lang.reflect.Method;public class ReflectTest {public static Car initByDefaultConst() throws Throwable {/*类装载器工作机制:(1)装载:查找和导入Class文件(2)链接:1.校验:检查载入Class文件数据的正确性2.准备:给类的静态变量分配存储空间3.解析:将符号引用转化为直接引用(可选)(3)初始化:对类的静态变量、静态代码块执行初始化工作*/// 1. 通过类加载器获取Car类对象ClassLoader loader = Thread.currentThread().getContextClassLoader();Class clazz = loader.loadClass("com.smart.reflect.Car");// 2. 获取类的默认构造器对象并通过它实例化CarConstructor constructor = clazz.getConstructor((Class[]) null);Car car = (Car) constructor.newInstance();// 3. 通过反射方法设置属性Method setBrand = clazz.getMethod("setBrand", String.class);setBrand.invoke(car, "红旗CA72");Method setColor = clazz.getMethod("setColor", String.class);setColor.invoke(car, "黑色");Method setMaxSpeed = clazz.getMethod("setMaxSpeed", int.class);setMaxSpeed.invoke(car, 200);return car;}public static void main(String[] args) throws Throwable {Car car = initByDefaultConst();car.introduce();//JVM装载类时使用“全盘负责委托机制”// 1.当一个ClassLoader装载一个类时,除非显式的使用另一个ClassLoader,该类所依赖及引用的类也由这个ClassLoader载入// 2.先委托父类装载器寻找目标类,只有在找不到的情况下才从自己的类路径中查找并装载目标类
    }
}

转载于:https://www.cnblogs.com/Michael2397/p/7929607.html

《精通Spring4.X企业应用开发实战》读后感第四章(Java反射)相关推荐

  1. 《精通Spring4.X企业应用开发实战》读后感第二章

    一.配置Maven\tomcat https://www.cnblogs.com/Miracle-Maker/articles/6476687.html https://www.cnblogs.com ...

  2. 《精通Spring4.X企业应用开发实战》读后感第五章(注入参数详解)

    转载于:https://www.cnblogs.com/Michael2397/p/7954596.html

  3. 《HBase企业应用开发实战》—— 第3章 数 据 模 型

    本节书摘来自华章出版社<HBase企业应用开发实战>一 书中的第3章,第3.1节,作者:马延辉 孟鑫 李立松 ,更多章节内容可以访问云栖社区"华章计算机"公众号查看. ...

  4. 精通Spring_4.x__企业应用开发实战PDF分享

    下载链接:http://www.fmpan.com/s/lxfpmio3

  5. Spring 3.x 企业应用开发实战(含CD光盘1张)

    Spring 3.x 企业应用开发实战(含CD光盘1张)  陈雄华,林开雄著 ISBN 978-7-121-15213-9 2012年2月出版 定价:90.00元(含光盘1张) 16开 728页 宣传 ...

  6. Spring 3.x企业应用开发实战

    Java技术大系 Spring 3.x企业应用开发实战 陈雄华    林开雄      著 Publishing House ofElectronics Industry 北京·  BEIJING 内 ...

  7. 《HBase企业应用开发实战》—— 2.5 停止HBase集群

    本节书摘来自华章出版社<HBase企业应用开发实战>一 书中的第2章,第2.5节,作者:马延辉 孟鑫 李立松 ,更多章节内容可以访问云栖社区"华章计算机"公众号查看. ...

  8. Lison《vue技术栈开发实战》(四)

    Lison<vue技术栈开发实战>(四) 从SplitPane组件谈Vue中"操作"DOM 简单两列布局 如何让两个div改变宽度 鼠标拖动效果 v-model和.sy ...

  9. 李艺《微信小程序全栈开发实战》(第一章)

    李艺<微信小程序全栈开发实战>(第一章) 双线程运行机制 小程序的特点及开发能力 小程序的特点 小程序的开发能力 开发小程序的一般流程 小程序的运行机制 小程序双线程 视图的持续更新是如何 ...

最新文章

  1. access mysql字段对应_ACCESS数据库中表与字段名称修改
  2. linux的网络命令整理 更新中
  3. java内置_自包含的应用程序,内置Java
  4. 保存图像_设计干货知识:SVG vs PNG vs JPG|图像格式的优缺点
  5. Bash Cookbook 学习笔记 【高级】
  6. 局部特征(3)——SURF特征总结
  7. centos5.4 安装配置oracle10g
  8. redis 数据类型、命令
  9. Windows进程与线程学习笔记(二)—— 线程结构体
  10. mysql5.5 datetime默认值不能为NOW或者CURRENT_TIMESTAMP
  11. CentOS7.5 使用二进制程序部署Kubernetes1.12.2(三)
  12. C# 巧用anchor和dock设计复杂界面(控件随着窗体大小的变化而变化)【转】
  13. sqlserver中常用的几个存储过程
  14. 探索流程的奥秘之三, 如何梳理业务流程
  15. AI 落地谁最强?AI Top 30+案例评选等你来秀
  16. 零基础学python图文版-零基础学Python(图文版)
  17. 生成一定数量的不重复随机数
  18. 如何下载矢量二维电子地图数据
  19. python新建画布_Python tkinter Canvas画布完全攻略-Python
  20. 初探机器学习之使用讯飞TTS服务实现在线语音合成

热门文章

  1. 二十二 Python分布式爬虫打造搜索引擎Scrapy精讲—scrapy模拟登陆和知乎倒立文字验证码识别...
  2. 纯野今日之最:面试谈
  3. 实现OO的最后一公里
  4. Add-in and Automation Development In VB.NET 2003 (8)
  5. 5个元素排序java_Android-java-如何按对象内的某个值对对象列表进行排序
  6. java pc 蓝牙_Nokia PC 套件与蓝牙适配器连接教程(转)--个人推荐
  7. 理解云原生--开发模型、架构原则、主要技术
  8. Intel Pin架构
  9. oracle创建目录并赋权,Oracle 添加用户并赋权,修改密码,解锁,删除用户的方法...
  10. php头像上传思路,PHP头像上传,php头像上传_PHP教程