大数据开发基础之JAVA反射注解

今天要给大家带来的是大数据开发基础之JAVA反射、注解,这一篇文章是JAVAse的最后一章节,这节学完后我们将开启新的篇章,开始学习JAVAweb。那么接下来就跟着本篇文章了解下JAVA的反射和注解吧。

大数据开发基础之JAVA反射注解

一、反射

在运行时,通过反射可以获取类的所有信息。反射的灵活使用也为很多逻辑的扩展提供了可能,通过Java的反射机制,可以在程序中访问已经加载到JVM中的Java对象的描述,实现访问、检测、修复和修改描述Java本身对象的功能,Java中的java.lang.reflect包提供使用注解功能。

(1)动态语言:是指程序在运行是可以改变其结构:新的函数可以引进,已有的函数可以被删除等结构上的变化。比如常见的JavaScript就是动态语言,除此以外Python等也属于动态语言,而C、C++则不属于动态语言。从反射角度说Java属于半动态语言。

(2)反射机制:指在运行状态中,对于任意一个类都能够知道这个类所有的属性和方法;并且对于任意一个对象,都能够调用它的任意一个方法;这种动态获取信息以及动态调用对象方法的功能称为Java语言的反射机制。在Java中,只要给定类的名字,那么就可以通过反射机制来获得类的所有信息。

(3)功能:

1.在运行时判定任意一个对象所属的类;

2.在运行时创建对象;

3.在运行时判定任意一个类所具有的成员变量和方法;

4.在运行时调用任意一个对象的方法;

5.生成动态代理;

(4)反射缺点:通过反射调用方法的效率比直接调用的效率要至少慢一倍以上,这就是反射在给予JAVA开发灵活性的同时带来的弊端

(5)优点:反射可以再众多模式中应用,比如设计模式中的应用,包括在工厂模式和代理模式中的应用

在运行时判定任意一个对象所属的类;

  在运行时创建对象;

  在运行时判定任意一个类所具有的成员变量和方法;

  在运行时调用任意一个对象的方法;

  生成动态代理;

大数据开发基础之JAVA反射注解

二、注解(Annotation)

注解:也称为元数据,是Java 5中的一项新功能。注解是一种可以在Java代码中插入的注释或元数据。 这些注解可以在编译时通过预编译工具进行处理,也可以在运行时通过Java Reflection进行处理。为我们在代码中添加信息提供了一种形式化的方法,注解在一定程度上是在把元数据与源代码文件结合在一起。

这是一个类注释的例子:

@MyAnnotation(name="someName", value = "Hello World")

public class TheClass {

}

类TheClass的注释@MyAnnotation写在自己类上。 注释被定义为接口。 这是MyAnnotation定义:

@Retention(RetentionPolicy.RUNTIME)

@Target(ElementType.TYPE)

public @interface MyAnnotation {

public String name();

public String value();

}

@标记为注释。 一旦定义了注释,就可以在代码中使用它

注解定义中的两条指令@Retention(RetentionPolicy.RUNTIME)和@Target(ElementType.TYPE)指定了注释的使用方式

(1)作用:

1.能够以编译器来测试和验证的的格式,存储有关程序的额外信息

2.用来生成描述符文件,或新的类定义

3.有助于减轻编写“样板”代码的负担

4.将元数据保存在Java源代码中,利用annotation API为自己的注解构造处理工具

(2)注解的标记

1、@target:修饰的对象范围,设置使用的元素种类,如果未设置就表示用于所有元素,使用ElementType设置。

ElementType 枚举常量有:

ANNOTATION_TYPE:表示用于Annotation的类型

TYPE:作用与类、接口、枚举

CONSTRUCTOR:作用于构造方法FIELD:作用于属性

METHOD:作用于方法

PARAMETER:作用于参数

LOCAL_VARIABLE:表示局部变量

PACKAGE:表示用于包

2、@Retention:定义被保留的时间长短

SOURCE:不编译到Annotation类的文件中

CLASS:编译到Annotation的文件中,运行时不加在到JVM中

RUNTING:运行时加载到JVM中,有效范围最大

3、@Documented 描述-javadoc

@Documented用于描述其他类型的annotation应该被作为被标注的程序成员的公共API,因此可以被例如javadoc此类的工具文档化。

4、@Inherited 阐述了某个被标注的类型是被继承的

@Inherited元注解是一个标记注解,@Inherited阐述了某个被标注的类型是被继承的。如果一个使用了@Inherited修饰的annotation类型被用于一个class,则这个annotation将被用于该class的子类。

使用注解的过程中,很重要的一部分就是创建与使用注解处理器。Java SE5扩展了反射机制的API,以帮助程序员快速的构造自定义注解处理器。

大数据开发基础之JAVA反射注解

以上就是关于大数据开发基础之JAVA反射注解的基础知识了,至此JAVAse的内容我们都讲完了,明天就会开始讲JAVAweb了。祝大家学习进步,事业高升。

希望大家点个关注,及时收取最新文章推送。

有问题的欢迎在评论区留言,如有侵权请告知。

展开阅读全文

页面更新:2024-06-17

标签:注解   反射   时调   数据   注释   定义   对象   机制   类型   语言   模式   代码   基础   方法   动态   科技   信息

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top