`
_念-H
  • 浏览: 9466 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

反 射

    博客分类:
  • JAVA
阅读更多

1、bean

public class User {
	private int id;
	private String name;
	public User(int id, String name) {
		super();
		this.id = id;
		this.name = name;
	}
	public User() {
		super();
	}
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
}

2、reflection

public static void main(String[] args) throws Exception{
		// 类的路径  包名+类名
		String path = "net.ylj.reflection.bean.User";
		//获取class的三种方式
		Class clazz = Class.forName(path);
		Class clazz2 = User.class;
		Class clazz3 = path.getClass();
		
		//类名称
		System.out.println(clazz.getName());		// 包名+类名
		System.out.println(clazz.getSimpleName());	// 类名
		
		//属性
		Field [] public_field = clazz.getFields();	         //public修饰的属性
		Field [] all_field = clazz.getDeclaredFields(); //所有属性
		Field f0 = clazz.getDeclaredField("id");     //获取指定属性
		for(Field f : all_field){  // 或public_field
			System.out.println(f.getType() + " == " + f.getName()); // 类型  名称
		}
		
		//方法
		Method[] public_method = clazz.getMethods(); 	//public修饰的方法
		Method[] all_method = clazz.getDeclaredMethods(); 	//所有方法
		Method method = clazz.getDeclaredMethod("setId",int.class);	//获取指定方法,方法无参数时写 null
		
		//构造方法
		Constructor[] constructor = clazz.getConstructors(); //获取所有构造方法
		Constructor cc = clazz.getDeclaredConstructor(null); //获取无参构造方法
		//反射调用无参构造方法
		User user = (User) clazz.newInstance();
		//反射调用有参构造方法
		Constructor<User> c = clazz.getConstructor(int.class,String.class);
		User u = c.newInstance(12,"小明");
		
		//反射调用普通方法
		Method m = clazz.getDeclaredMethod("setName", String.class);
		m.invoke(u, "小红");	//like u.setName("小红");
		
		//反射,通过属性修改属性值
		Field field = clazz.getDeclaredField("name");
		field.setAccessible(true);	//设置该属性跳过安全检查
		field.set(u, "小刚");	//like u.setName("小刚");
	}

 

分享到:
评论

相关推荐

    C#高级编程--反 射!

    【C#高级编程--反射】反射是C#中一种强大的动态类型操作机制,它允许在程序运行时检查和操作程序元素,如类型、方法、属性等。通过反射,开发者可以实现诸如以下功能: 1. **枚举类型的成员**:在运行时获取类的...

    反 射 应 用.rar

    Java的泛型在编译后会被擦除,反射可以帮助我们获取泛型类型信息,这对于实现类型安全的代码容器或者序列化/反序列化等操作很有帮助。 6. **注解处理** 反射可以用来读取和处理类、方法、字段上的注解,这对于...

    3D+VRAY+灯光渲染器参数设置---副本.pdf

    8. 反 射/折 射:指场景中的材 质是否有反 射/折 射 效果。 9. 最 大 深 度:指反 射/折 射 的 次 数。 10. 覆 盖 材 质:用一 种 材 质 替换 场 景 中 所 有 材 质,一般用于渲染 灯光时使用。 11. 光 滑 效 果:材...

    射流反推力.exe

    射流反推力.exe

    空管雷达行业报告:航路监视雷达、机场监视雷达、精密进近雷达、地面活动监视雷达

    基本原理是地面雷达装置发射无线电波,空中飞机的反射回波,地面雷达依据反 射回波得出距离和方位信息,即一次雷达(Primary Surveillance Radar, PSR)。另一类则是二次雷达(Secondary Surveillance Radar,SSR)...

    基于SAW无线测温系统的PIFA天线设计_张晓新.caj

    在 433.7 MHz附 近 输 入 反 射 系 数 S11为-26.6dB,且电压驻波比接近于1,具有良好的增益和匹配特性。该天线不仅结构简单,便于制作,还具有良好方向性和辐射特性。测试结果与仿真结果吻合,...

    2017年大学生数学建模A题CT系统标定成像论文

    本文运用MATLAB 等工具对已给出的数据进行分析和处理,通过反 射投影算法,等比例转换法, radon 变换和iradon 变换,还原180 次扫描信息和 图形信息。 对于问题1,通过radon 变换法,在MATLAB 中得出该介质以...

    电信设备-一种反自辐射的通信装置.zip

    "一种反自辐射的通信装置"这一主题,揭示了针对自我辐射问题的一种创新解决方案。自我辐射,简单来说,是指设备在运行过程中产生的电磁辐射,可能导致能量损失、干扰其他信号,甚至可能对用户健康产生潜在影响。在...

    超声波测距系统设计资源合集

    超声波测距 本资源里面介绍了一种利用超声波测距的系统,该...送入单片机外部中断端,通过计算超声波的发射和返回的时间,确定超声波发生器和反 射物体之间的距离,完成测距。该系统可实现 4 米内测距,盲区 20 厘米。

    一种光电智能车寻迹算法的研究.PDF

    文 中研究智能车 寻迹 系统采用 红外反 射式光电感识别路 径上 的黑线 ,并 以最短 的时间 完成寻迹。为使智 能车快速 、平稳地行驶 ,系统 必须把路径识别 、相应 的转 向伺 服电机控制 以及 直流驱动电机控制准确...

    反熔丝FPGA电路瞬时电离辐射效应及加固设计.pdf

    反熔丝FPGA电路瞬时电离辐射效应及加固设计的知识点涵盖以下几个方面: 1. 瞬时电离辐射的定义和影响:瞬时电离辐射是指在极短时间内,一种或多种射线对电子器件产生电离作用的过程。这种辐射会瞬间改变电子器件...

    基于光线跟踪的一般辐射度方法研究

    在将光线跟踪技术和辐射度方法相结合,更有效地模拟光能在物体表面间的镜面反 射、透射和漫反射光照效应方面,本文做了较深入的讨论;对非理想漫射的一般环境,给出了基 于光线跟踪的一般辐射度方法及其逐步求精迭代的...

    射流泵抽气进行滤池气水反冲洗试验研究.rar

    《射流泵抽气在滤池气水反冲洗试验中的应用》 在现代水处理工艺中,滤池作为核心设备之一,其清洗效果直接影响到出水水质和整个系统的运行效率。传统的滤池清洗方式主要是通过水力反冲洗,但近年来,随着科技的进步...

    2021全国大学生数学建模竞赛-“FAST”主动反射面的形状调节(论文+源码)

    【项目介绍】:500 米口径球面射电望远镜“FAST”有特殊的使用功能,由主索节点构成的主动反 射面主要分为两个状态——基准态(球面)、工作态(近似旋转抛物面)。“FAST”在工 作中,支撑其结构的控制众多,而本...

    全国大学生数学建模竞赛上海二等奖-“FAST”自动反射球面的形状调节源码+文档说明+报告pdf

    500 米口径球面射电望远镜“FAST”有特殊的使用功能,由主索节点构成的主动反 射面主要分为两个状态——基准态(球面)、工作态(近似旋转抛物面)。“FAST”在工 作中,支撑其结构的控制众多,而本论文主要研究其...

    C# 2005 NET3.0高级编程(第5版)

    4. **反射** (ch12反 射.doc) 反射是.NET Framework的一项强大功能,它允许在运行时动态地获取类型信息并创建、操作类型实例。通过反射,你可以动态加载类型、调用方法、访问属性和字段,甚至可以创建未在编译时硬...

    xml与反射.txt

    只要给定类的名字,就可以通过反 射获取类的所有信息,接着便能调用它的任何一个方法和属性。 反射的步骤有哪些? 第一:获取类加载器:ClassLoader loader=Thread.currentThread().getContextClassLoader();//获取...

Global site tag (gtag.js) - Google Analytics