传智播客java学习 反射、内省
今天我听了佟老师讲的反射、内省知识
反射:Filed,
1. 需求:对于给定的对象的属性进行赋值,
2. 使用方法:已知类的全类名,获取对应的class对象,获取要获取的Filed。
1. 获取私有的Filed:getDeclsredFiled(“class”)
2. 给私有的Field赋值,现需要让其可见setAccessible(true)
3. 再对字段赋值
Method:
1. 获取对应的calss对象
2. 利用class对象的newInstance()方法创建
3. 获取setName(String)对象对应的method对象
4. 调用method对象的invoke()方法进行执行2创建的User对象的setName方法
5. 测试打印
内省:
1. 什么是内省:内省是 Java 语言对 Bean 类属性的一种缺省处理方法。
2. 一般的做法是:一般的做法是通过类 Introspector 来获取某个对象的 BeanInfo 信息,然后通过 BeanInfo 来获取属性的描述器( PropertyDescriptor ),通过这个属性描述器就可以获取某个属性对应的 getter/setter 方法,然后通过反射机制来调用这些方法
org.apache.commons.beanutils
背景:一个JavaBean通常包含了大量的属性,很多情况下,对JavaBean的处理导致大量get/set代码堆积,增加了代码长度和阅读代码的难度
解决:BeanUtils提供对 Java反射和内省API的包装。其主要目的是利用反射机制对JavaBean的属性进行处理。
&nb
相关文档:
try{
URL url=new URL("http://baidu.com");
BufferedReader br=new BufferedReader(new InputStreamReader(url.openStream()));
String s="";
StringBuffer sb=new StringBuffer("");
while((s=br.readLine())!=null) {   ......
给定由n个整数组成的序列(a1, a2, …, an),求该序列的子段和的最大值,当所有整数均为负整数时,其最大子段和为0。
LargestSubsegmentSum1.java //蛮力算法
import ......
在n×n格的棋盘上放置彼此不受攻击的n个皇后。按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。n后问题等价于在n×n格的棋盘上放置n个皇后,任何2个皇后不放在同一行或同一列或同一斜线上。
回溯算法描述:
void Queue(int n)
{
&nb ......
值类型是存储在内存中的堆栈(以后简称栈),而引用类型的变量在栈中仅仅是存储引用类型变量的地址,而其本身则存储在堆中。
==操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同。
equals操作表示的两个变量是否是对同一个对象的引用,即堆中的内容是 ......
值类型是存储在内存中的堆栈(以后简称栈),而引用类型的变量在栈中仅仅是存储引用类型变量的地址,而其本身则存储在堆中。
==操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同。
equals操作表示的两个变量是否是对同一个对象的引用,即堆中的内容是否 ......