
目录
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.计算机能够识别的二进制文件。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)