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

手机网站开发升上去网站关键词如何做优化

手机网站开发升上去,网站关键词如何做优化,网站备案需要关闭,如何在阿里云部署网站Java注解 注解介绍元注解RetentionTargetDocumentedInherited接口类测试结果 注解介绍 Java注解#xff08;Annotation#xff09;是一种元数据#xff08;Metadata#xff09;的形式#xff0c;它可以被添加到Java代码中的类、方法、变量、参数等元素上#xff0c;以提… Java注解 注解介绍元注解RetentionTargetDocumentedInherited接口类测试结果 注解介绍 Java注解Annotation是一种元数据Metadata的形式它可以被添加到Java代码中的类、方法、变量、参数等元素上以提供关于程序代码的额外信息。 在Java中注解并不是一个Java类而是一个特殊的接口类型(默认继承java.lang.annotation.Annotation接口)其实例在编译时被创建并且在程序运行过程中可以通过反射获取相关信息。 注解里面定义的方法代表的注解的成员属性可以指定默认值(不指定默认值时使用时必须指定对应的值)。在注解被使用时可以指定具体的的值在编译时会自动创建代理的注解对象这个对象的属性不可修改(immutable)。 Target({ElementType.TYPE, ElementType.METHOD}) Retention(RetentionPolicy.RUNTIME) Documented Conditional({OnClassCondition.class}) public interface ConditionalOnClass {Class?[] value() default {};String[] name() default {}; } 元注解 Java中元注解是用来修饰其它注解的注解。元注解是用来定义其它注解行为的注解。Java提供了常用的元注解Retention、Target、Documented、Inherited。 Retention retention保留保持。 Retention保留注解策略只有这个元注解作用于注解时才有效如果将元注解类型作用于另一个注解类型的成员属性(成员变量)则无效。 保留策略RetentionPolicy.SOURCE、RetentionPolicy.CLASS、RetentionPolicy.RUNTIME。 RetentionPolicy.SOURCE注解在编译时会被丢弃。只保留在源代码级别可以用于编译器的静态检查和处理。RetentionPolicy.CLASS注解被保留在class文件中但是运行时不可见不能通过反射获取。对编译器可见但是运行时不会产生任何效果。缺省的默认保留策略。RetentionPolicy.RUNTIME编译后被保存在class文件中并且运行时能提供反射获取到。 Documented Retention(RetentionPolicy.RUNTIME) Target(ElementType.ANNOTATION_TYPE) public interface Retention {// 返回注解保留的策略RetentionPolicy value(); } 继承Retention注解 package com.oycm.spring_data_jpa.annotations.retention;import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy;Retention(RetentionPolicy.SOURCE) public interface RetentionSource { } package com.oycm.spring_data_jpa.annotations.retention;import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy;Retention(RetentionPolicy.SOURCE) public interface RetentionClass {} package com.oycm.spring_data_jpa.annotations.retention;import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy;Retention(RetentionPolicy.RUNTIME) public interface RetentionRuntime {ClassRetentionClass value(); } package com.oycm.spring_data_jpa.annotations.retention;import java.lang.annotation.Annotation; import java.lang.reflect.Field;/*** author ouyangcm* create 2024/2/26 15:52*/ RetentionSource RetentionClass RetentionRuntime(value RetentionClass.class) public class RetentionTest {RetentionSourceRetentionClassRetentionRuntime(value RetentionClass.class)private String member;RetentionSourceRetentionClassRetentionRuntime(value RetentionClass.class)private static String staticMember;public static void main(String[] args) {ClassRetentionRuntime runtimeClass RetentionRuntime.class;ClassRetentionTest clazz RetentionTest.class;Annotation[] annotations clazz.getAnnotations();for (Annotation annotation : annotations) {System.out.println(annotation);}Field[] currentClassFields clazz.getDeclaredFields();for (Field currentClassField : currentClassFields) {System.out.println(属性名: currentClassField.getName());Annotation[] fieldAnnotations currentClassField.getAnnotations();for (Annotation fieldAnnotation : fieldAnnotations) {System.out.println(注解: fieldAnnotation.annotationType().getName());}}} } 注意反射获取的Annotation是一个代理对象可以使用annotationType()方法获取真正的注解对象类信息。 Target Documented Retention(RetentionPolicy.RUNTIME) Target(ElementType.ANNOTATION_TYPE) public interface Target {// 注解目标类型数组ElementType[] value(); } Target注解用于指定注解可以应用的目标类型。类型有ElementType.TYPE(类、接口(注解)、枚举等)、ElementType.FIELD(静态或非静态成员变量)、ElementType.METHOD(普通方法)、ElementType.PARAMETER(方法参数)、ElementType.CONSTRUCTOR(构造方法)、ElementType.LOCAL_VARIABLE(局部变量)、ElementType.ANNOTATION_TYPE(注解)、ElementType.PACKAGE(包)、ElementType.TYPE_PARAMETER(泛型)、ElementType.TYPE_USE(用于使用类型的任何地方)。 // 不能作用于其他类型上,只能作为其他注解的变量使用 Target({}) public interface MemberType {... }// 类型重复出现,编译报错 Target({ElementType.FIELD, ElementType.METHOD, ElementType.FIELD}) public interface Bogus {... } Documented Documented Retention(RetentionPolicy.RUNTIME) Target(ElementType.ANNOTATION_TYPE) public interface Documented { } 指示被标注的自定义注解是否应该包含再Java文档中。一个注解使用了Document注解标注那么使用javadoc工具生成文档时这个注解的信息会被包含在文档中。 Inherited Inherited继承的遗传的。 表示类的注解是可继承的使用getAnnotation()会自动查询该类的父类以获取所有的注解直到Object类这个元注解只在作用于类注解时才生效。 Documented Retention(RetentionPolicy.RUNTIME) Target(ElementType.ANNOTATION_TYPE) public interface Inherited { } Inherited Retention(RetentionPolicy.RUNTIME)// 不可省略,不然获取不到 Target(ElementType.TYPE) public interface MyInherited { } 接口 package com.oycm.spring_data_jpa.annotations.inherited;MyInherited public interface InheritedInterface { } package com.oycm.spring_data_jpa.annotations.inherited;/*** author ouyangcm* create 2024/2/26 17:22*/ public class InheritedInterfaceImpl implements InheritedInterface{ } 类 package com.oycm.spring_data_jpa.annotations.inherited;/*** author ouyangcm* create 2024/2/26 17:22*/ MyInherited public class InheritedSuper { } package com.oycm.spring_data_jpa.annotations.inherited;/*** author ouyangcm* create 2024/2/26 17:22*/ public class InheritedSuperSub extends InheritedSuper{ } 测试结果 package com.oycm.spring_data_jpa.annotations.inherited;/*** author ouyangcm* create 2024/2/26 17:21*/ public class InheritedTest {public static void main(String[] args) {ClassInheritedInterface inheritedInterfaceClass InheritedInterface.class;ClassInheritedInterfaceImpl inheritedInterfaceClassImpl InheritedInterfaceImpl.class;// 这里获取到Annotation对象仍然是代理,不过两个是同一个对象.annotationType()可以获取真正的Class对象System.out.println(inheritedInterfaceClass.getAnnotation(MyInherited.class));System.out.println(inheritedInterfaceClass.getDeclaredAnnotation(MyInherited.class));System.out.println(inheritedInterfaceClassImpl.getAnnotation(MyInherited.class));System.out.println(inheritedInterfaceClassImpl.getDeclaredAnnotation(MyInherited.class));ClassInheritedSuper inheritedSuperClass InheritedSuper.class;ClassInheritedSuperSub inheritedSuperSubClass InheritedSuperSub.class;System.out.println(inheritedSuperClass.getAnnotation(MyInherited.class));System.out.println(inheritedSuperClass.getDeclaredAnnotation(MyInherited.class));System.out.println(inheritedSuperSubClass.getAnnotation(MyInherited.class));System.out.println(inheritedSuperSubClass.getDeclaredAnnotation(MyInherited.class));// 只能获得自己的注解} }
http://www.dnsts.com.cn/news/26478.html

相关文章:

  • 夜间正能量不良网站入口不用下载潍坊优化网站排名
  • 沈阳网站建设哪家便宜代理网站建设
  • 网站开发完后期维护重要吗做胎儿羊水鉴定网站
  • 南乐网站建设费用win7 iis新建网站
  • 网站模板分什么类型深圳网站建设公司怎么样
  • 从零开始学做网站tp框架做的图片网站
  • 多点网络网站制作系统太原seo
  • 为网站网站做推广wordpress回复邮件
  • 胶州城乡建设局网站wordpress用户功能扩展
  • 网站背景图片自动切换怎么用凡科做网站
  • 前端和网站建设的区别中国建设投资集团 网站首页
  • 服务器网站模板wordpress视频类主题
  • 苏州哪个公司做门户网站wordpress 帕兰映像 安装教程 wordpress
  • 网站建设需要提供什么东西青岛网络seo公司
  • 天津品牌网站建设公司公司网站建设的好处
  • 微网站开发+在线商城怎么做网站底部版权信息
  • 自己做的图片哪个网站可以出售wordpress+主题+恢复
  • 河源市住房城乡和建设局网站苏州做网站设计
  • 食品网站开发营销方式有哪几种
  • 科普网站栏目建设方案策划网站建设 在线购买
  • 福州长乐网站建设上海网站备案人工服务器
  • jsp网站维护wordpress heroku
  • 全网营销建设网站全国建筑资质查询服务平台
  • 个旧网站建设跑胡子网站开发
  • 网站建设新闻 常识江苏苏州
  • 查看网站是什么语言做的白沙的网站建设
  • 网站站内搜索怎么做wordpress文章搜索排序
  • 网站如何加入百度网盟舆情数据分析
  • 如何看网站建立时间安徽外经建设集团有限公司网站
  • oss怎么做网站hexo wordpress哪个好