Java的注解和反射

Java的注解和反射,第1张

Java的注解反射

目录

1.注解

1.1内置注解:

1.2元注解:

2.反射


1.注解

Annotation是JDK5.0开始引入的新技术。

1.1内置注解:

1.2元注解:

元注解的作用是负责注解其他注解 。

 @Retention:表示需要在什么级别保存该注释信息,用于描述注解的生命周期

(source(注解在程序是源代码.java的时候会被识别) <  class(注解在程序是字节码文件.class的时候可以被识别) < runtime(注解在程序运行时可以被识别))

@Target表示我们的注解可以使用在什么地方。

枚举ElementType如下:


package java.lang.annotation;


public enum ElementType {
    
    TYPE,

    
    FIELD,

    
    METHOD,

    
    PARAMETER,

    
    CONSTRUCTOR,

    
    LOCAL_VARIABLE,

    
    ANNOTATION_TYPE,

    
    PACKAGE,

    
    TYPE_PARAMETER,

    
    TYPE_USE
}
@Target注解需要传入的是数组值,定义的属性ElementType[] value()为,@Target源码如下:
package java.lang.annotation;


@documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.ANNOTATION_TYPE)
public @interface Target {
    
    ElementType[] value();
}

@Target注解的使用案例如下:

package com.minstone;

import net.bytebuddy.implementation.bind.annotation.RuntimeType;

import java.lang.annotation.*;


@MyAnnotation
public class Test01 {
    public static void main(String[] args) {

    }

    @MyAnnotation
    public void test(){

    }
}


// 表示我们的注解可以用在什么地方
@Target(value = {ElementType.METHOD})
// 表示我们的注解在什么地方生效
// runtime > class > sources
// 定义为runtime的runtime、class、sources 3个阶段生效
// 定义为class的可以在class、sources 2个阶段生效
// 定义为sources的只能在sources阶段生效
@Retention(value = RetentionPolicy.SOURCE)
// 表示是否将我们的注解生成在 JAVAdoc中
@documented
// 子类可以继承父类的注解
@Inherited
@interface MyAnnotation{

}
1.3自定义注解

 

注解可以显示赋值,如果没有默认值,我们就必须给注解赋值。

自定义注解未设置参数默认值,在使用该注解的时候不给该参设值则报错

 自定义注解为设置参数默认值,使用该注解的时候不给该参设值则正常

 

 

2.反射
反射学习的大纲:

Java反射机制概述

理解Class类并获取Class实例

类的加载与ClassLoader

创建运行时类的对象

获取运行时类的完整结构

调用运行时类的指定结构

静态语言和动态语言的区别:

 Java Reflection(反射)

反射是什么,反射和正常方式的区别?如下:

 Java 反射机制提供的功能 有哪些?

Java 反射的优点和缺点 是什么?

 

反射相关的主要API

 

 

Java代码的在计算机中经历的三个阶段

1. 源代码 (.java)编译为

2.字节码文件(class)编译为

3.计算机能够识别的二进制文件。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/zaji/5718156.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-17
下一篇2022-12-17

发表评论

登录后才能评论

评论列表(0条)

    保存