java核心机制_Java基础增强篇一,Java核心功能反射机制

Java反射机制

1. java代码

在 java 语言中最核心的就是代码的运行, 按照面向对象的思想,在调用java代码时往往需要先创建对象,再调用方法, 而写在方法中的即所谓的java 代码

先分析Class对象的图解:

90c57148d4106fb358c5deab69342f29.png

一段java代码在程序运行期间会经历三个阶段: source-->class-->runtime

2. Class 对象

在java中用一个Class对象来表示一个java类的class阶段,Class对象封装了一个java类中定义的成员变量、成员方法、构造方法、类名、包名等。

获得class对象的三种方式和区别

// 1. 根据给定的类名来获得 用于类加载

// 来自配置文件

String classname = "cn.itcast.reflect.Person";

// 此对象代表Person.class

Class clazz = Class.forName(classname);

// 2. 如果拿到了对象,不知道是什么类型 用于获得对象的类型

Object obj = new Person();

// 获得对象具体的类型

Class clazz1 = obj.getClass();

//java对象的比较不能用==,而是用equals,但是,有一个对象除外Class

If(clazz1 == Person.class)

// 3. 如果是明确地获得某个类的Class对象 主要用于传参

Class clazz2 = Person.class;

// 在java中所有的类型都会对应一个Class对象 int Integer

Class intClazz = int.class;

Class intarrClazz = int[].class;

Class voidClazz = void.class;

d72e8ce43555057f95d897be7b4f5bc2.png

3. 反射的概念

反射就是获得一个java类的各个组成部分

// 反射类的成员方法

Class clazz = Person.class;

Method method = clazz.getMethod(methodName, new Class[]{paramClazz1,paramClazz2});

method.invoke();

// 反射类的构造函数

Constructor con = clazz.getConstructor(new Class[]{paramClazz1,paramClazz2,...})

con.newInstance(params...)

// 反射类的属性

Field field = clazz.getField(fieldName);

field.setAccessible(true);

field.setObject(value);

1bc438cf3009bdd752a8e32e328279f6.png

4. 反射用在哪里?

到底框架是什么? 框架就是将开发中大量重复的代码集中起来写个通用的程序

框架就是用反射来实现的

框架需要现在的类调用将来写的类

框架是将来的程序员调用的,框架不能实现完整的功能,框架只是一些一些通用的代码

框架要运行一定会依赖将来写的类

现在写的类要调用将来写的类,我们先针对接口进行调用,将来的类需要实现接口,那么方法就固定了

但是将来写的类的类名我们无法获知,这时就需要调用者通过配置文件告诉框架具体的类名

欢迎关注,获得更多资料

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值