- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
反射(含路径问题)部分笔记
源文件来自Y2笔记
反射(Reflect)
反射即将Class类中的所有的成员映射为相应的对象。
要学习反射那么需要先了解和掌握以下几个类:
类 描述 Class 描述所有的Class文件的共性 Filed 描述的是Class文件的中的属性的共性 Constructor 描述的是Class文件中的构造函数的共性 Method 描述的是Class文件中的函数的共性 1. 获取指定类的Class对象
方式一: 类名.class
方式二: 对象名.getClass()
方式三: forName(String className) 该方法是Class类的静态方法 推荐
举例1: 获取字符串类的Class对象。
public static void main(String[] args)throws Exception {
// 使用不同的方式会过去Class对象
Class clazz1 = String.class;
Class clazz2 = new String().getClass();
// 参数必须指定类的全名(类的全限定名) Class clazz3 = Class.forName(java.lang.String);
// class文件时候独一无二的,那么Class对象也应该是单例的
System.out.println(clazz1 == clazz2); // true
System.out.println(clazz2 == clazz3); // true
}omcat的一个基本的server.xml文件
Resource name=UserDatabase auth=Container
type=org.apache.catalina.UserDatabase
description=User database that can be updated and saved
factory=org.apache.catalina.users.MemoryUserDatabaseFactory ( 类
pathname=conf/tomcat-users.xml /
2. 将Class对象中的属性进行反射为Filed对象
常用的获取属性字段的方法
方法 描述 Field[] getDeclaredFields() 获取所有声明的字段数组对象 Field[] getFields() 获取所有的声明的共有字段数组对象 Field getDeclaredField(String name) 获取指定名称的声明的字段对象 Field getField(String name) 获取指定名称的声明的共有字段对象 举例1:获取所有的声明字段数组对象。
public static void main(String[] args)throws Exception {
// 获取Shape类的Class对象
Class clazz = Class.forName(cn..bean.Shape);
// 获取所有的属性
Field [] fs = clazz.getDeclaredFields();
System.out.println(fs.length); // 2
// 获取所有共有的属性
fs = clazz.getFields();
System.out.println(fs.length); // 1
// 获取指定名字的私有的属性
Field field = clazz.getDeclaredField(x);
System.out.println(field);
// 获取指定名字的共有的属性
field = clazz.getField(y);
System.out.println(field);
} public static void main(String[] args)throws Exception {
// 获取Shape类的Class对象
Class clazz = Class.forName(cn..bean.Shape);
// 获取所有的属性
Field [] fs = clazz.getDeclaredFields();
System.out.println(fs.len
您可能关注的文档
- 双重联锁正反转控制线路(个人学习用).ppt
- 反不正当竞争法律制度ppt.ppt
- 双龙战法模型图集.doc
- 反不正当竞争练习1.ppt
- 反不正当竞争法课件及最新案例解析新.ppt
- 反习惯性违章.ppt
- 反垄断法的域外适用制度与完善对策.doc
- 反应热电化学.ppt
- 反思四:如何上好晨读课.doc
- 双层玻璃幕墙.ppt
- 新高考生物二轮复习讲练测第6讲 遗传的分子基础(检测) (原卷版).docx
- 新高考生物二轮复习讲练测第12讲 生物与环境(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第3讲 酶和ATP(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第9讲 神经调节与体液调节(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第11讲 植物生命活动的调节(讲练)(原卷版).docx
- 新高考生物二轮复习讲练测第8讲 生物的变异、育种与进化(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第5讲 细胞的分裂、分化、衰老和死亡(讲练)(原卷版).docx
- 新高考生物二轮复习讲练测第5讲 细胞的分裂、分化、衰老和死亡(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第12讲 生物与环境(讲练)(原卷版).docx
- 新高考生物二轮复习讲练测第11讲 植物生命活动的调节(检测)(原卷版).docx
文档评论(0)