当前位置: 首页 > news >正文

虹口专业网站建设中国交通建设集团有限公司董事长

虹口专业网站建设,中国交通建设集团有限公司董事长,翠竹林 wordpress,砀山网站建设Java注解语法 1. 前置基础 ​ 学习java反射语法 JAVA通过反射使用公共构造方法和私有构造方法来创建对象 2. Java注解是什么#xff1f; ​ Java注解是代码中的特殊标记#xff0c;比如Override、Test等#xff0c;作用是#xff1a;让其他程序根据注解 信息决定怎么执…Java注解语法 1. 前置基础 ​ 学习java反射语法 JAVA通过反射使用公共构造方法和私有构造方法来创建对象 2. Java注解是什么 ​ Java注解是代码中的特殊标记比如Override、Test等作用是让其他程序根据注解 信息决定怎么执行该程序。 ​ 比如Junit框架的Test注解可以用在方法上用来标记这个方法是测试方法被Test标记的方法能够被Junit框架执行。 ​ 再比如Override注解可以用在方法上用来标记这个方法是重写方法被Override注解标记的方法能够被IDEA识别进行语法检查。 ​ 注解不光可以用在方法上还可以用在类上、变量上、构造器上等位置。 3. 自定义注解 ​ 3.1 自定义注解格式 public interface 注解名称 {public 属性类型 属性名() default 默认值; }​ 3.2 自定义注解Test ​ 属性名称Test 包含属性String a和int b public interface Test{String a();int b() default 3; }​ 3.3 使用注解Test Test(aggg,b5) //Test即为对自定义注解的使用语法形式 public class demo{}注意注解的属性名如果是value的话并且只有value没有默认值使用注解时value名称可以省略。 public interface Test{String value();int b() default 3;int c() defaule 5; }Test(ggg) //Test即为对自定义注解的使用语法形式 public class demo{}4. 注解的本质 把注解的字节码进行反编译使用XJad工具进行反编译。经过Test注解字节码反编译会发现 1.Test注解本质上是接口每一个注解接口都继承子Annotation接口 2.Test注解中的属性本质上是抽象方法 3.Test实际上是作为MyTest接口的实现类对象 4.Test(aggg,b5) 里面的属性值可以通过调用a()、b()方法获取到。 5. 元注解 元注解是修饰注解的注解分别有注解Retention和Target. Target是用来声明注解只能用在那些位置比如类上、方法上、成员变量上等 Retetion是用来声明注解保留周期比如源代码时期、字节码时期、运行时期Target注解可以标识多个位置 语法 Target({ElementType.TYPE,ElementType.METHOD})6. 解析注解 ​ 通过反射技术把类上、方法上、变量上的注解对象获取出来然后通过调用方法就可以获取注解上的属性值了该过程称为解析注解。 ​ 流程如下 1.如果注解在类上先获取类的字节码对象再获取类上的注解 2.如果注解在方法上先获取方法对象再获取方法上的注解 3.如果注解在成员变量上先获取成员变量对象再获取变量上的注解 总之注解在谁身上就先获取谁再用谁获取谁身上的注解Class、Method、Filed、Constructor都实现了AnnotatedElement接口都具有解析注解的能力。 示例 1. 定义注解 import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;Retention(RetentionPolicy.RUNTIME)Target({ElementType.TYPE, ElementType.METHOD})public interface Test {String a();int b() default 3;boolean c();}2. 定义Demo类并使用该注解。 Test(afirst, b5, cfalse) public class Demo {Test(afirst, b5, cfalse)public void demoTest(){} } 3. 编写测试类获取注解中的值。 import java.lang.reflect.Method;public class AnnotatedTest {public static void main(String[] args) throws Exception {// 获取类上注解属性// 1.获取Demo的class对象Class demoClass Demo.class;// 2.获取类上的注解if(demoClass.isAnnotationPresent(Test.class)){Test test (Test) demoClass.getDeclaredAnnotation(Test.class);System.out.println(test.a());System.out.println(test.b());System.out.println(test.c());System.out.println(-------------------);}// 获取方法上注解属性Method demoTest demoClass.getDeclaredMethod(demoTest);// 2.获取类上的注解if(demoTest.isAnnotationPresent(Test.class)){Test test (Test) demoTest.getDeclaredAnnotation(Test.class);System.out.println(test.a());System.out.println(test.b());System.out.println(test.c());System.out.println(-------------------);}} }
http://www.zqtcl.cn/news/730703/

相关文章:

  • 学习教建网站个人做网站用什么技术
  • 企业型网站怎么做域名邮箱和域名网站
  • 建设银行激活网站站长工具seo综合查询 分析
  • 如何把自己做的网站发布到网上洛阳网新闻中心
  • 新手建网站教程id注册
  • 华为官方手表网站成都网站优化外包
  • 杭州企业排行榜网站优化包括对什么优化
  • 北京模板网站开发全包做网站网络
  • 甘肃建设项目审批权限网站wordpress插件移植
  • 网站开发沟通网站推广关键词工具
  • 河南微网站开发建程网的工程好拿钱吗
  • 怎么设立网站北京市网站备案
  • 网站容量空间一般要多大建设网上银行查询
  • 前端网站模板市场营销推广方案
  • 企业做网站收费做网页的
  • 网站内容创意网站开发后台php技术
  • 做下载网站用阿里云的什么产品goland 网站开发
  • 湖州网站建设策划学编程软件
  • 龙华网站建设专业定制企业外贸网店怎么开
  • 申请网站做自己的产品做头像一个字的网站
  • 外贸网站建设行业发展情况北京 企业网站开发
  • dedecms 倒计时 天数 网站首页创业众筹平台
  • 隆尧建设局网站wordpress彻底禁用google
  • 自己做网站需要什么技能比邻店网站开发
  • 网站建设杭州最便宜劳务公司找项目平台
  • jsp做网站毕业设计安徽省交通运输厅章义
  • 企业网站有哪几个类型广州做网站市场
  • 直播网站建设开发上海注册公司多少钱
  • 可以兼职做设计的网站备案期间能否做网站解析
  • 做发帖的网站代码seo联盟平台