注解与反射机制

注解

      Override表示一个方法声明打算重写超类中的另一个方法声明。如果方法利用此注释类型进行注解但没有重写父类方法,则编译器会生成一种错误信息

想对一个方法进行override

       Alt+/

Override

 

Deprecated

SuppressWarnings

 

自定义注解

放在方法前ok,放在类前就报错了,因为@Target的值是.METHOD

步骤:

    ①定义注解本身
    ②在类里面使用这个注解
    ③写一个解析程序把注解读出来,进行解析处理
(在框架里通常解析注解已经写好了,只需要我们会在类里面使用这个注解就ok了)

下面没截全的都是生成getter和setter生成的

这两个都是注解程序

这是解析程序

 

反射机制

    举一个看到过的例子,在实际开发中,我们需要把一个包中的class new出来,但是这个包中的类总是需要变动,那么怎么办,难道总是修改main方法中xxx=new xxx()吗。这样无疑是麻烦的。而运用反射。我们可以相应的增加一个配置文件,在里面记录包中所有的类名,包中类增加时就加一个类名,删除时就删除一个类名。让main方法去读取这个配置文件中的类名,通过反射获得实例,完全不用我们去修改main方法中的代码。

       说了这么多,那么我们的开发中,为什么不全部都用反射那?一个原因,开销,它的开销是什么昂贵的,所以尽量在最需要的地方使用反射。

 

但是clazz和clazz2是同一个对象

Field是属性

Method是方法

Type是类

Class,Field,Method,Constructor等都是java已经预定义的类

发布了396 篇原创文章 · 获赞 172 · 访问量 17万+

猜你喜欢

转载自blog.csdn.net/hxxjxw/article/details/104932502