黑马程序员技术交流社区
标题:
[石家庄校区]Java基础班第13天课程
[打印本页]
作者:
后街姚姑娘
时间:
2018-4-23 16:39
标题:
[石家庄校区]Java基础班第13天课程
本帖最后由 小石姐姐 于 2018-4-26 14:26 编辑
Java基础班第13天课程
//一个表情代表一个知识点
1. 对象名.getCalss(); // 次方法来自于Object 对象已经存在的情况下, 可以使用这种方式
2. 类名.class // 类名.class这是一个静态的属性, 只要知道类名, 就可以获取
3. Class.forName(“com.itheima_01.Student”); // 通过Class类中的静态方法, 指定字符串, 该字符串是类的全类名(包名+类名)
// 此处将会抛出异常都系 ClassNotFoundException 防止传入错误的类名
代码演示:
public
class
ReflectDemo {
public
static
void
main(String[]
args
)
throws
ClassNotFoundException {
//
通过
Object
的
getClass()
方法获取,必须要有对象
Student
s
=
new
Student();
Class
clazz
=
s
.getClass();
//
通过类名获取字节码对象
Class
clazz2
= Student.
class
;
//推荐方法使用
Class
clazz3
= Class.
forName
(
"com.itheima_01.Student"
);
}
三种字节码获取的方式,推荐第三种方法使用;
Field[] getFields() -->
返回该类所有
(
公共
)
的字段
Field getField(String name) -->
返回指定名称字段
Field[] getDeclaredFields() -->
暴力反射获取所有字段
(
包括私有
) Field getDeclaredField(String name) -->
暴力反射获取指定名称字段
Field:
Object get(Object obj) --> Field
对象调用
,
返回传入对象的具体字段
void set(Object obj, Object value) --> Field
对象调用
参数
1:
要修改的对象
参数
2:
将此对象的字段修改为什么值
.
BeanUtils
static void setProperty(Object bean, String name, Object value)
static String getProperty(Object bean, String name)
static void populate(Object bean, Map properties)
setProperty 用来给对象中的属性赋值(了解)
参数1: 需要设置属性的对象
参数2: 需要修改的属性名称
参数3: 需要修改的具体元素
getProperty 用来获取对象中的属性(了解)
参数1: 要获取的javaBean对象
参数2: 对象中的哪个属性
Populate 用来给对象中的属性赋值(掌握)
参数1: 要设置属性的对象
参数2: 将属性以Map集合的形式传入
Key : 属性的名称
Value: 属性具体的值
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2