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

seo公司网站建设什么网比较好

seo公司网站建设,什么网比较好,室内装修设计网站推荐,中国最有创意的广告目录 1、什么是注解 2、自定义注解的定义 3、使用自定义注解 4、处理自定义注解 5、注解处理器 5.1、定义注解 5.2、实现注解处理器 6、应用场景 7、总结 1、什么是注解 Java注解(Annotation)又称为Java标注,是Java 5开始支持加入源代…

目录

1、什么是注解

2、自定义注解的定义

3、使用自定义注解

4、处理自定义注解

 5、注解处理器

5.1、定义注解

5.2、实现注解处理器

6、应用场景

7、总结


 

1、什么是注解

Java注解(Annotation)又称为Java标注,是Java 5开始支持加入源代码的特殊语法元数据。是附加在代码上的一些元信息,可以用于添加元数据、配置或行为到代码中,支持自定义注解,是一个强大的功能,自定义注解的实现包括定义注解、处理注解(通过反射或注解处理器)以及在实际代码中使用注解。注解相关类都包含在java.lang.annotation包中。

2、自定义注解的定义

自定义注解使用@interface关键字定义。常见的自定义注解分为四类,用在类上面、注解用在方法上面、注解用在属性上面、注解用在参数上面,注解可以包含元素(类似于方法),这些元素可以有默认值。

package com.gs.test.annotation;import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;//定义注解的作用目标(类,方法,字段等)
@Target(ElementType.METHOD)
//定义注解的生命周期(SOURCE,CLASS,RUNTIME)
@Retention(RetentionPolicy.RUNTIME)
public @interface CustomAnnotation {//定义注解的元素String value() default "default value";int count();
}
  • @Target:指定注解可以应用的目标(如方法、类、字段等)。常用值:

    • ElementType.METHOD:方法

    • ElementType.TYPE:类或接口

    • ElementType.FIELD:字段

    • ElementType.PARAMETER:参数

  • @Retention:指定注解的生命周期。常用值:

    • RetentionPolicy.SOURCE:仅保留在源码中,编译时丢弃。

    • RetentionPolicy.CLASS:保留到编译后的字节码中,但运行时不可见。

    • RetentionPolicy.RUNTIME:保留到运行时,可以通过反射读取。

3、使用自定义注解

定义好注解后,可以在代码中使用它。

package com.gs.test.annotation;public class MyService {@CustomAnnotation(value = "custom value", count = 3)public void myMethod(){System.out.println("executing myMethod");}
}

4、处理自定义注解

通过反射机制,可以在运行时读取注解信息并执行相应的逻辑。

示例:通过反射读取注解信息

package com.gs.test.annotation;import java.lang.reflect.Method;public class AnnotationProcessor {public static void main(String[] args) {// 获取目标类的Class对象Class<MyService> clazz = MyService.class;// 遍历类中的所有方法for (Method method : clazz.getDeclaredMethods()) {// 检查方法是否使用了自定义注解if (method.isAnnotationPresent(CustomAnnotation.class)) {// 获取注解实例CustomAnnotation annotation = method.getAnnotation(CustomAnnotation.class);// 读取注解的值String value = annotation.value();int count = annotation.count();System.out.println("Method: " + method.getName());System.out.println("Value: " + value);System.out.println("Count: " + count);// 根据注解的值执行逻辑for (int i = 0; i < count; i++) {System.out.println("Executing logic based on annotation: " + value);}}}}
}

 5、注解处理器

如果需要编译时处理注解,可以使用注解处理器(Annotation Processor)。注解处理器可以生成代码、验证代码或执行其他编译时任务。

示例:实现一个简单的注解处理器

5.1、定义注解

package com.gs.test.annotation;import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;@Target(ElementType.TYPE)
@Retention(RetentionPolicy.SOURCE)//注解只在源码保留
public @interface GenerateToString {
}

5.2、实现注解处理器

package com.gs.test.annotation;import javax.annotation.processing.AbstractProcessor;
import javax.annotation.processing.RoundEnvironment;
import javax.annotation.processing.SupportedAnnotationTypes;
import javax.annotation.processing.SupportedSourceVersion;
import javax.lang.model.SourceVersion;
import javax.lang.model.element.TypeElement;
import java.util.Set;@SupportedAnnotationTypes("GenerateToString")
@SupportedSourceVersion(SourceVersion.RELEASE_8)
public class GenerateToStringProcessor extends AbstractProcessor {@Overridepublic boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {// 处理注解逻辑annotations.forEach(annotation -> {roundEnv.getElementsAnnotatedWith(annotation).forEach(element -> {String className = element.getSimpleName().toString();System.out.println("Generating toString() for class: " + className);});});return true;}
}

6、应用场景

自定义注解在实际开发中有广泛的应用场景,例如:

  • 框架开发:如Spring中的@Controller@Service等。

  • 代码生成:如Lombok的@Data@Getter等。

  • 验证逻辑:如自定义参数校验注解。

  • 日志记录:通过注解自动记录方法调用日志。

  • 权限控制:通过注解实现方法级别的权限校验。

7、总结

自定义注解的实现包括定义注解、使用注解和处理注解三个步骤。通过反射可以在运行时读取注解信息,而注解处理器可以在编译时处理注解。合理使用自定义注解可以显著提高代码的可读性和可维护性。

 

http://www.dtcms.com/wzjs/796122.html

相关文章:

  • 企业网站组网方案在线网站cms识别
  • 烟台网站建设找企汇互联专业昆山哪里有人做网站
  • WordPress外贸企业站主题网站常见 8
  • 一流的山西网站建设翻书效果的网站
  • 网站搭建平台价格合肥网站的建设
  • 温室大棚建设 网站及排名转卖建设网站外国人可搜到
  • 城乡建设局网站有人百度看片吗
  • 辛集市住房和城乡建设厅网站菏泽网站建设公司蓝希科技
  • 苏州网站开发服务京东联盟推广网站
  • 资源分享类网站模板苏州建站模板厂家
  • 做网站就用建站之星公司网站建设需要哪些设备
  • 网站由哪儿三部分组成嘉兴市城乡与建设局网站
  • 做网站的工作叫什么建设网站要什么手续
  • 知名的建站公司广西自治区住房和城乡建设厅网站
  • 访问国外的网站服务器无法访问建设网站商城后台系统
  • 专业网站建设的百度做网站需要交钱吗
  • 打开网站总显示建设中建设部电教中心网站
  • 网站备案号注销的结果半岛网
  • 如何分析网站设计企业网站教程
  • 用dw自己做网站新手网络设计师人生规划
  • seo建站营销上海工装设计公司排名
  • 线上做交互的网站商城系统源码
  • zencart中文网站国外电子商务网站
  • 网站建设活动策划方案wordpress图片合成
  • 网站建设推广是什么意思职业技能培训机构
  • 建设小说网站小说源免费建站网站大全
  • 流量网站海尔网站建设策划书
  • 企业门户网站模板html上线网站可以做推广
  • 南昌网站seo技术厂家策划 网站
  • 江西久久建筑工程有限公司洛阳网站建设seo