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

营销型外贸网站制作项目推广渠道有哪些

营销型外贸网站制作,项目推广渠道有哪些,wordpress生成微信小程序,怎样注册小程序店铺目录 1、什么是注解? 2、什么是元注解 1、Target() 2、Retention() 3、Documented 4、Inherited 3、如何自定义注解以解使用 4、注解的原理 本篇文章主要是介绍注解的概念、原理,以及通过代码演示4种元注解、如何自定义注解。通过反编译的形式进…

目录

1、什么是注解?

2、什么是元注解

1、@Target()

2、@Retention()

3、@Documented

4、@Inherited

3、如何自定义注解以解使用

4、注解的原理


本篇文章主要是介绍注解的概念、原理,以及通过代码演示4种元注解、如何自定义注解。通过反编译的形式进一步认识注解的本质。

1、什么是注解?

注释是给人看的,注解是给程序看的

例如我们常见的单元测试@Test注解,实现父类方法的@Override注解

2、什么是元注解

元注解就是负责修饰其他注解的注解

java定义了四种,主要是用于规范当前注解的作用范围,注解生命周期等。

分为@Target()、@Retention()、@Documented、@Inherited

其中@Target()、@Retention()是用得比较多的。

1、@Target()

需要带参数,表示规范这个注解可以用在类上,或者方法等其他地方上。

ElementType这个枚举类定义了很多类型,根据不同类型的定义决定被修饰的注解的使用地方

//表示我们的注解可以用在哪些地方,可以进源码查看
@Target(value = {ElementType.METHOD})

ElementType的类型如下

2、@Retention()

需要带参数,表示注解在什么地方还有效,描述注解的生命周期。有3种情况

SOURCES:只作用在源码阶段,字节码文件种不存在

CLASS:保留到字节码文件阶段,运行阶段不存在

RUNTIME:运行时有效,开发常用

RUNTIME>CLASS>SOURCES

//表示注解在什么地方还有效,一般就3种情况。RUNTIME>CLASS>SOURCES
@Retention(value = RetentionPolicy.RUNTIME)

3、@Documented

表示是否将我们的注解生成在javaDoc中

@Documented

4、@Inherited

说明子类可以继承父类中的该注解

@Inherited

3、如何自定义注解以解使用

以下是自定义一个metaAnnotation注解

自定义注解里面的属性必须要带括号

下面拆分为几种形式学习

情况一:注解值属性为value,且仅有一个属性时,使用该注解可以省略命名

@Target(value = {ElementType.METHOD})//表示该注解是定义在方法上的
@Retention(value = RetentionPolicy.RUNTIME)  //表示该注解生命周期为运行时有效
public @interface metaAnnotation{//自定义注解,记得加括号String value();  //为value时,注解可以省略命名}

使用方法

@metaAnnotation("value时可以省略命名,只有这个可以,不成名的规范")public static void main(String[] args) {}

情况二:设置默认值的注解,使用时候可以选择不命名以及不传参数。

@Target(value = {ElementType.METHOD})//表示该注解是定义在方法上的
@Retention(value = RetentionPolicy.RUNTIME)  //表示该注解生命周期为运行时有效
public @interface metaAnnotation{//自定义注解,记得加括号int id() default 1;int index() default -1;  //如果默认值为-1,代表不存在}

使用方法

@metaAnnotation()
public static void main(String[] args) {
}

情况三:多参数定义注解,属性为value的必须要命名传参,

其他属性的无默认值的也必须要命名传参,

设置了默认值的属性也可以选择传参,

参数也可以为数组的方式

@Target(value = {ElementType.METHOD})//表示该注解是定义在方法上的
@Retention(value = RetentionPolicy.RUNTIME)  //表示该注解生命周期为运行时有效
public @interface metaAnnotation{//自定义注解,记得加括号String value();  //为value时,注解可以省略命名int id() default 1;int index() default -1;  //如果默认值为-1,代表不存在String name();int age();String[] nameList();
}

使用方法

  @metaAnnotation(value = "value时可以省略命名,只有这个可以,不成名的规范",index = 1,name = "名字",age = 99,nameList = {"名字1","名字1"})public static void main(String[] args) {}

4、注解的原理

注解的本质:

就是一个接口,java中所有的注解都继承了Annotation接口。

我们使用注解@注解(...)的时候其实就是一个实现类对象,实现了该注解以及Annotation接口 

先把注解编译成class再反编译,还是以我们自定义的注解举例子

@Target(value = {ElementType.METHOD})//表示该注解是定义在方法上的
@Retention(value = RetentionPolicy.RUNTIME)  //表示该注解生命周期为运行时有效
public @interface metaAnnotation{//自定义注解,记得加括号String value();  //为value时,注解可以省略命名int id() default 1;int index() default -1;  //如果默认值为-1,代表不存在String name();int age();
}

以下是反编译后注解真正的源代码

我们可以看到,我们写的注解的本质是一个接口,继承了Annotation的接口

我们在注解里面自定义的属性,其实都是抽象方法的形式

当我们使用注解的时候,实际上就相当于创建注解的实现类对象,这个实现类对象会封装注解的属性信息(比如value的值,index的值,name的值等),封装进去之后,我们就可以通过这个对象去调用注解提供的方法来获取对应的属性值。

以上就是我对注解的理解啦,希望能帮到大家,有问题的地方欢迎大家一起讨论!

后续会不断更新作品,欢迎大家一起讨论学习。❤❤❤

http://www.fp688.cn/news/165223.html

相关文章:

  • jsp做的大型网站seo技术分享博客
  • 盘古网络建站抖音关键词搜索排名
  • 成都注册网站公司南宁seo优势
  • 同ip网站做301关键词seo优化
  • 重庆市建设工程信息网官网查询证书下载武汉seo关键字推广
  • cdr做好排班怎么做网站比较靠谱的推广公司
  • 国外 网站开发框架网页链接制作生成
  • 网站界面设计尺寸百度广告推广费用
  • 网站开发过程分为哪几个阶段十大免费域名
  • 集团网站建设方案网站注册
  • 制作微信小程序步骤广州抖音seo公司
  • 深圳公司做年报网站新媒体营销案例ppt
  • wordpress更改后台批量优化网站软件
  • 网站备案必须做大型网站建设
  • WordPress 图片翻页杭州排名优化公司
  • 做家政应该下载什么网站免费建站模板
  • 百度推广负责做网站吗厦门seo关键词优化代运营
  • 网站式登录页面模板下载地址网站seo标题是什么意思
  • 家庭装什么宽带最划算抖音seo优化怎么做
  • 网站后台登陆不了国外十大免费服务器和域名
  • 刘琪 找谁做网站靠谱线上引流的八种推广方式
  • 招聘网站如何建设线下实体店如何推广引流
  • 口味王网站建设的设计方案搜索引擎查询
  • 销售易crm官网登录网站seo优化服务商
  • 合肥哪个公司做网站好西点培训前十名学校
  • 做网站ps建立多大的画布企业建站系统
  • 网站备案管局电话键词优化排名
  • soho做网站有没有免费的seo网站
  • 昆明哪些做网站建设的公司刷关键词的平台
  • 网站是什么时候出现的个人在线做网站免费