博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java 自定义注解(手写框架的前提)
阅读量:3952 次
发布时间:2019-05-24

本文共 2471 字,大约阅读时间需要 8 分钟。

首先: 打上定义个 A注解

package visitor;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;@Target({
ElementType.TYPE,ElementType.FIELD})@Retention(RetentionPolicy.RUNTIME)public @interface A {
String value(); String content(); int num() default 0;}

什么也别说,和我默默运行这个代码

package visitor;import java.lang.reflect.Field;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;public class Main {
public static void main(String[] args) {
Person p = new Person(); A annotation = p.getClass() .getAnnotation(A.class); System.out.println(annotation); //获取p对象属性中,被打上 A注解的 A对象 Field for(Field declaredField: p.getClass().getDeclaredFields()) {
A nullableA = declaredField.getAnnotation(A.class); if(nullableA !=null) {
System.out.println(nullableA); } } } private static class Person {
@A(content = "88",value = "00") private String name = "lyr"; private String password="xx"; @A(value = "x",content = "s") private Integer age = 20; public String getName() {
return name; } public void setName(String name) {
this.name = name; } public String getPassword() {
return password; } public void setPassword(String password) {
this.password = password; } public Integer getAge() {
return age; } public void setAge(Integer age) {
this.age = age; } } }

在这里插入图片描述

Reflection 是Java被视为动态(或准动态)语言的一个关键性质。这个机制允许程序在运行时透过Reflection APIs取得任何一个已知名称的class的内部信息,包括其modifiers(诸如public, static 等等)、superclass(例如Object)、实现之interfaces(例如Cloneable),也包括fields和methods的所有信息,并可于运行时改变fields内容或唤起methods。

一般而言,开发者社群说到动态语言,大致认同的一个定义是:“程序运行时,允许改变程序结构或变量类型,这种语言称为动态语言”。从这个观点看,Perl,Python,Ruby是动态语言,C++,Java,C#不是动态语言

尽管在这样的定义与分类下Java不是动态语言,它却有着一个非常突出的动态相关机制:Reflection。这个字的意思是“反射、映象、倒影”,用在Java身上指的是我们可以于运行时加载、探知、使用编译期间完全未知的classes。换句话说,Java程序可以加载一个运行时才得知名称的class,获悉其完整构造(但不包括methods定义),并生成其对象实体、或对其fields设值、或唤起其methods1。这种“看透class”的能力(the ability of the program to examine itself)被称为introspection(内省、内观、反省)。Reflection和introspection是常被并提的两个术语。

转载地址:http://cauzi.baihongyu.com/

你可能感兴趣的文章
“需求为王”才是根本
查看>>
高效率的危害
查看>>
寻找边缘性创新
查看>>
让创意瞄准市场
查看>>
高效经理人应具有的八个重要习惯
查看>>
优秀的领导者能读懂人才
查看>>
大智若愚也是领导力
查看>>
android如何编译MTK的模拟器
查看>>
android如何添加AP中要使用的第三方JAR文件
查看>>
利用sudo命令为Ubuntu分配管理权限
查看>>
Ubuntu下几个重要apt-get命令用法与加速UBUNTU
查看>>
Ubuntu中网页各种插件安装命令
查看>>
使用tar命令备份Ubuntu系统
查看>>
ubuntu flash 文字乱码解决方案
查看>>
在ubuntu中运行exe文件
查看>>
ubuntu安装命令
查看>>
和上司沟通必备8个黄金句
查看>>
联系查看两张卡的未接电话记录
查看>>
Python 3 之多线程研究
查看>>
APP第三方登录实现步骤
查看>>