首页 > 其他 > 详细

反射/注解基础使用

时间:2021-06-13 01:04:30      阅读:20      评论:0      收藏:0      [点我收藏+]

Java反射机制
动态获取信息以及动态调用对象方法

使用反射需要获取字节码文件对象
如何获取字节码对象:

1. Class.forName("全限定类名")//静态方法,直接获取字节码文件对象,源文件阶段还不是字节码文件

2.Person.class //该类加载成class文件时,person类就成为.class,之后获取自己(字节码文件对象)

3.c.getClass(); //通过类的实例获取类的字节码对象,处于创建对象阶段

例:
// 参数根据有参构造为准
Class class="class".forName("Person");

Constructor con=cass.getConstructor(int.class,String.class);//通过构造器实例化对象,传入参数

Person person=(Person)con.nuw Instance(1,"1");

//Annotation 注解库

@Deprecated : 过时的。
@Override: 重写、覆盖
@SuppressWarnings:压缩警告

--
注解相当一种标记,在程序中加入注解等于为程序打上某一种标记,可添加再包、类、属性、方法、参数、局部变量上。

元注解
@Target :用于描述注解的使用范围
@Retention :表示需要在什么级别保存该注解信息,描述注解声明周期(什么时候还可以用)
@Document: 注解加入Javadoc中
@Inherited:子类可以继承父类的该注解

------
自定义注解:
@interface 自动继承Annotation接口
格式: public @interface 注解名{定义内容}
每一个方法声明了一个配置参数
方法名称即参数名称
返回值类型就是参数的类型(返回值职能是基本类型,Class,String,enum)
可以通过default声明参数的默认值
只有一个参数成员,一般参数名为value
注解元素必须有值,自定义注解常使用空字符串,0作为默认值

such as:

public class test(){
@MyAnnotation(根据注解参数为准)
public void test(){
}

}

定义类 定义方法
@Target({ElementType.Type,ElementType.METHOD})//作用域
@Retention(RetentionPolicy.RUNTIME)
@interface MyAnnotation{
//注解的参数:参数类型+参数名();
String name();
String name() default ""; 定义默认值 注解可以显示赋值。
int age();
int id() default -1 ; //如果默认值为-1代表不存在。
Stirng[]schools();
}

反射/注解基础使用

原文:https://www.cnblogs.com/zsxoh/p/14878795.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!