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

公司网站建设小江/凡科建站官网

公司网站建设小江,凡科建站官网,沧州企业网站,wordpress最好的编辑器JavaEE-Java开发框架的基础-注解机制 文章目录JavaEE-Java开发框架的基础-注解机制概述常见标识性注解自定义注解RetentionTargetAnnotatedElement接口注解应用实例概述 Annotation(注解)工作方式: 从java1.5以后,jdk提供了注解…

JavaEE-Java开发框架的基础-注解机制

文章目录

  • JavaEE-Java开发框架的基础-注解机制
    • 概述
    • 常见标识性注解
    • 自定义注解
    • @Retention
    • @Target
    • AnnotatedElement接口
    • 注解应用实例

概述

Annotation(注解)工作方式:

从java1.5以后,jdk提供了注解开发,开发者可以自定义注解。Annotation并不影响代码的语义,但是它的工作方式常被用来开发程序工具或者类库,它反过来对正在运行的程序语义有所影响

举例: @override

override属于标识性注解

常见标识性注解

@Deprecated:过期的方法,不建议使用的

@SuppressWarning:消除警告(开发工具标志了黄线则为警告)

自定义注解

public @interface MyAnn {//定义注解的属性,必须要加上()String value();
}
@MyAnn(value = "hello")
public class AnnTest {

@interface代表注解

注解中可以设置值,在程序运行时配合使用

所有带@的接口都继承自

@Retention

@Retention是作用在注解上的注解,指明被注解的注解有效期

有三个RetentionPolicy类型的值可以设置

ClASS:注解指定的值至保留在类文件

RUNTIME:有效期包含通过反射被调用时

SOURCE:只保留在源代码

如:

@Retention(RetentionPolicy.RUNTIME )
public @interface testAnno {}

@Target

主要标注在注解上,表示被标注的注解可以标注在哪些域上

@Retention(RetentionPolicy.RUNTIME)
@Target(value={ElementType.METHOD})
public @interface Anndemo {//定义注解属性String [] value();}

以上表示只标注在方法上

@Target支持添加的类型

注解的值类型(是个枚举类型)

枚举中有以下项

AnnotatedElement接口

所有的域(类,方法,属性,包等)都实现了这个接口

接口中定义了获得注解的方法

注解应用实例

自定义注解:

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;@Retention(RetentionPolicy.RUNTIME )
public @interface testAnno {String value();
}

自定义注解所添加的方法:

public class Caculate {
@testAnno(value = "相加的结果为")
public  int add(int a, int b ){return a+b ;
}
}

反射调用方法,获得注解值,进而影响程序:

import java.lang.reflect.Method;public class testReflect {public static void main(String[] args) throws Exception {//创建Caculate类对象Class<?> clazz =  Caculate.class ;//通过类对象获得实例Object obj  = clazz.newInstance();//获得方法Method method = clazz.getDeclaredMethod("add", int.class, int.class);//判断是否存在注解boolean isA = method.isAnnotationPresent(testAnno.class) ;if(isA){//获得注解testAnno an = method.getAnnotation(testAnno.class) ;//获得注解的值String val =  an.value();//反射调用add方法Object result = method.invoke(obj,new Object[]{1,2}) ;//结合注解的值System.out.println(val+result);}}
}

http://www.lbrq.cn/news/1028485.html

相关文章:

  • 如何做网站嵌入腾讯地图/seo长尾关键词排名
  • 网站建设代码上传/成人短期技能培训学校
  • 做淘宝客需要网站吗/互联网项目
  • 广东网站开发软件/百度热榜实时热点
  • 网站建设一般字体多大/什么公司适合做seo优化
  • 网站设计作业多少钱/做一个简单的网站需要多少钱
  • 在线做插画的网站/如何免费注册网站
  • 怎样去同行网站做外连接/销售的三个核心点
  • 合肥哪家公司做网站/小程序搭建教程
  • 广东深圳网站建设服务/天津seo培训机构
  • 软件系统网站建设/网站模板下载
  • 杭州网站建设怎么样/百度竞价排名
  • 设计网站卖钱/竞价交易规则
  • html5网站建设企业论文/百度搜索关键词排名优化
  • 开发一款网站需要多少钱/竞价排名的优缺点
  • 海城区建设局网站/凡科建站靠谱吗
  • 商城网站都有什么功能模块/关键词优化报价查询
  • php做旅游网站/域名年龄对seo的影响
  • 吉林省建设集团有限公司网站/线上职业技能培训平台
  • 赣州晒房网门户网站/seo 的原理和作用
  • 网站版建设/提供seo顾问服务适合的对象是
  • 网络架构和管理/厦门seo外包
  • 电话销售企业网站怎么做/东莞做网站公司电话
  • 商城类网站建设方案/外贸建站seo
  • 青海省住房建设厅网站/宁波网络推广方式
  • 做社交的招聘网站/seo推广平台
  • 平板网站开发/唐山建站公司模板
  • 安平有做网站推广的吗/外链大全
  • 网站怎么做备份/竞价推广营销
  • 网站静态/微信营销的优势
  • diffusers库学习--pipeline,模型,调度器的基础使用
  • Unity中的神经网络遗传算法实战
  • Windows基础概略——第一阶段
  • 基于SpringBoot+Vue的智能消费记账系统(AI问答、WebSocket即时通讯、Echarts图形化分析)
  • epoll模型解析
  • 图论理论部分