注解与反射------框架的底层实现机制

注解(Java.Annotation)

注解与注释并不相同,注释是给人看的,而注解是不仅给人看,而且还是给机器看的,注解是JDK 5.0 引入的新技术,注解最主要的功能是可以被其它程序(如编译器)读取。
内置注解
@Override、@Deprecated、@SuppressWarnings
元注解
元注解的作用就是解释其它注解的注解(比如注解你自定义的注解),一共有四个,分别是:
@Target:表示注解(你自定义的注解,下同)的作用范围
@Retention:描述注解的生命周期
@Document:说明该注解将被包含在javadoc中
@Inherited:说明子类可以继承父类中的注解

反射

获取类对象

1、类名字.class方法

2、对象名.getclass方法(几乎不用)

3、Class.forName(“包名+类名”)

获得类的名字

getName()方法

getSimpleName方法

获得类的属性

getFields方法,只能找到声明为public类型的属性,少一个s可以找指定属性

getDeclaredFields方法,可以找到全部属性

(tip:只要加上Declared,就可以找出全部属性

获取类的方法

getMethods方法,同上,不同的是可以获得本类及其父类的全部public方法,当少写一个s获取指定方法时,该方法需要什么参数,就需要丢类对象进去,空参时需要丢null进去

getDeclaredMethods方法,同上,只能获得本类的所有方法

获取类的构造器

getConstuctors方法

getDeclaredConstructors方法

动态创建对象

newInstance方法,第一步先获取类对象,再进行User user = (User)类对象.newInstance

通过构造器创建对象,有参与无参的区别,是constuctor.newInstance

通过反射获取一个方法

第一步:先获取方法

第二部:方法名.invoke(对象,参数)

通过反射操作属性

第一步:获得属性

第二步:.setAccessible(true),关掉权限,仅私有而已

XMind - Trial Version

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值