ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

注解与反射

2022-02-02 03:00:07  阅读:124  来源: 互联网

标签:反射 动态 Java 语言 value 注解 ElementType


注解

  一些内置注解

@Override 注解重写  添加到方法上
@Deprecated 过时注解,不推荐 添加到方法上
@SuppressWarnings() 抑制编译时的警告信息 添加到方法上

元注解

元注解  主要用于注解其他的注解
@Target 用于描述注解的使用范围
@Retention 描述注解的生命周期 (source<class<tuntime)优先级
@Documented 说明该注解将被包含在javadoc中
@Inherited 说明子类可以继承父类中的该注解

定义一个注解

@Target(value = {ElementType.METHOD,ElementType.TYPE})//注解在方法上,注解在类上
@Retention(value = RetentionPolicy.RUNTIME)//注解在运行时有效
@interface MyAnn{

}

注解的属性值

@Target(value = {ElementType.METHOD,ElementType.TYPE})
@Retention(value = RetentionPolicy.RUNTIME)
@interface MyAnnotation{
    //注解的参数:参数类型+参数名()
    String name();
    int age() default 0;
    int id() default -1;//如果值为-1代表不存在
    String[] schools();
}

@interface MyAnnotation2{
    String value();//如果注解只有一个属性,并且属性名为value,则可以省略不写value
}

具体使用

//注解可以显示赋值,如果没有默认值,我们必须给注解赋值
    @MyAnnotation(name = "五月",schools = {"江南大学","清华大学"})
    @MyAnnotation2("傻逼")
    public void test(){}

 

反射

静态和动态语言

动态语言

➢是一类在运行时可以改变其结构的语言:例如新的函数、对象、甚至代码可以被 引进,已有的函数可以被删除或是其他结构.上的变化。通俗点说就是在运行时代码可以根据某些条件改变自身结构。
➢主要动态语言: Object-C、 C#、 JavaScript. PHP、Python等。
静态语言
➢与动态语言相对应的,运行时结构不可变的语言就是静态语言。如Java、 C、C++.
➢Java不是动态语言,但Java可以称之为"准动态语言”。即Java有一定的动态性,我们可以利用反射机制获得类似动态语言的特性。Java的动态性让编程的时候更加灵活!


标签:反射,动态,Java,语言,value,注解,ElementType
来源: https://www.cnblogs.com/msboke/p/15860016.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有