-
Java注解查看全部
-
注解分类 (按运行机制):1源码注解(源码中存在,编译成.class文件就不存在了) 2.编译时注解(@Override @Deprecated @Suppvisewarnings) 3.运行时注解(运行阶段还起作用甚至影响运行逻辑的注解) (按照来源分):1.来自JDK注解 2.第三方注解 3.自己定义的注解 注解的注解即为元注解查看全部
-
常见注解查看全部
-
课堂总结查看全部
-
代码后续 评论区大神提供的源码:http://blog.csdn.net/zen99t/article/details/50351575查看全部
-
2. 接下来,考虑query()方法的实现。 步骤如图:查看全部
-
要实现的功能:调用方法query(),返回对应的sql语句 1. 首先,考虑代码如何与数据库进行映射。 使用注释将数据库中的表名、字段名与Java类的成员变量形成映射。(如图) 需要在项目中创建两个注解类(Table/Column)。查看全部
-
注解实战 需求查看全部
-
解析注解 概念:通过反射获取类、函数或成员的运行时注解信息,从而实现动态控制程序运行的逻辑。 @Inherited 只能实现类的继承,而接口是无法继承的。即接口的注解无法影响到实现接口的类上面。另外,父类的方法的注解也无法被子类继承。 核心代码: //1. 使用类加载器加载类 Class c = Class.forName("anno.test.Child"); //2. 找到类上面的注解 boolean isExist=c.isAnnotationPresent(Description.class);//isAnnotationParse()判断类上是否存在Description这样的注解 if(isExist){ //3.获得注解实例 Description d = (Description)c.getAnnotation(Description.class); System.out.println(d.value()); } //4.找到方法上的注解 Method[] mts = c.getMethods(); for (Method mt : mts) { if(mt.isAnnotationPresent(Description.class)){ Description d2 = (Description)mt.getAnnotation(Description.class); System.out.println(d2.value()); }} //另外一种获取类上的注解的途径 Annotation[] annos = c.getAnnotations(); for (Annotation anno : annos) { if(anno instanceof Description){ System.out.println(((Description) anno).value()); }} //另一种获取方法上的注解的途径 for (Method mt : mts){ Annotation[] annos2 = mt.getAnnotations(); for (Annotation anno : annos2) { if(anno instanceof Description){ System.out.println(同上); }}}查看全部
-
通过反射读取注解查看全部
-
1. 虽然 public @interface Description{ String desc(); } @Description(desc="the name method") 不会报错。 但不符合规范,既然只有一个成员,就要使用value作为成员名,改成: public @interface Description{ String value(); } 然后在使用注解的时候,直接赋值,不写成员名和等号: @Description("the name method") 以上方式,约定俗成,比较直观。 2. 没有成员的注解——标志注解(比如常见的@Override),在使用的时候不加括号。 3. 当一个方法被规定为({ElementType.METHOD})就表示只能用于方法的注解,如果用在类上面,就会报错(添加 ElementType.TYPE 则可适用于类)。这里没有包含关系,例如只写ElementType.TYPE 则不能对方法进行注解,只能对类或接口进行注解。 4. @Documented(属于标识注解,生成javadoc时会包含注解) 创建一个Javadoc :右击项目--> Export --> Java --> Javadoc --> next -->Browser 选择要存放的文件夹。点击finish就生成成功了。 打开这个文件夹,点击index.html,就能查看该项目的一些摘要。查看全部
-
使用注解的语法 @注解的名称 (<成员名1> = <成员值1> , <成员名2> = <成员值2> ,...) 例如:( 对方法eyeColor()使用注解@Description,同时给注解的成员赋值 ) @Description( desc="I am eyeColor",author="Mooc boy",age=18) public String eyeColor(){ return "red"; } 上面的成员,就是注解内部的成员: public @interface Description{ String desc(); String author(); int age() default 18; }查看全部
-
下次来看查看全部
-
元注解包括:@Target @Retention @Inherited @Documented。 @Target是元素类型的(也就是注解的)作用域。注解的作用域包括: 1. CONSTRUCTOR 构造方法声明 2. FIELD 字段声明 3. LOCAL_VARIABLE 局部变量声明 4. METHOD 方法声明 5. PACKAGE 包声明 6. PARAMETER 参数声明 7. TYPE 类,接口 @Retention代表注解的生命周期,一共有三种: 1. SOURCE 只在源码显示,编译时会丢弃。 2. CLASS 编译时会记录到.class文件中,运行时忽略。 3. RUNTIME 运行时存在,可以通过反射读取。 @Inherited 这是一个标识注解。允许子类(子注解)继承。 @Documented 生成javadoc的时候会包含注解的信息查看全部
-
自定义注解的语法要求(如图) 1. 使用@interface关键字定义注解 2. 成员(成员变量)以无参无异常的方式声明 3. 可以用default为成员指定一个默认值 --->成员类型是受限的,合法的类型包括原始类型以及String、Class、Annotation(注解)、Enumeration(枚举); --->如果注解只有一个成员,则成员名必须取名为value(),在使用时可以忽略成员名和赋值号(=); --->注解类可以没有成员,没有成员的注解称为“标识注解”。查看全部
举报
0/150
提交
取消