栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

2021年12月27日-Java学习笔记

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

2021年12月27日-Java学习笔记

学习视频来源:B站UP主-遇见狂神说

注解与反射 1. 出现在方法上一行的@xxx就是注解,比如“重写”注解@Override

​ @Override,表示一个方法打算重写超类中的另一个方法;
​ @Deprecated,表示不鼓励使用该方法,已过时的;
​ @SuppressWarnings,用来抑制编译时的警告信息,这个需要添加参数,参数是已定义的,根据选择使用;
​ 以上都是内置注解。

2. 元注解

​ 元注解的作用就是负责注解其他注解。
​ @Target,用于描述注解的使用范围/被描述的注解可以用在什么地方;
​ @Retention,表示注解在什么时候是有效的,用于描述注解的生命周期;
​ @document,说明该注解将被生成在javaDoc中;
​ @Inherited,说明子类可以继承父类中的这个注解。

import java.lang.annotation.*;

// 元注解
public class Test02 {

    @MyFirstAnnotation
    public void test() {

    }

    // 定义一个注解
    @Target(value = {ElementType.METHOD, ElementType.TYPE})
    @Retention(value = RetentionPolicy.RUNTIME)  // runtime > class > source
    @documented
    @Inherited
    @interface MyFirstAnnotation {

    }
}
3. 自定义注解
import java.lang.annotation.*;

// 元注解
public class Test02 {

    // 注解可以显示赋值。如果没有默认值default,我们就要必须给注解赋值
    @MyFirstAnnotation(age = 24, name = "荆轲")
    public void test() {

    }

    @MySecondAnnotation("荆轲")
    public void test1() {

    }

    // 定义一个注解
    @Target(value = {ElementType.METHOD, ElementType.TYPE})
    @Retention(value = RetentionPolicy.RUNTIME)  // runtime > class > source
    @interface MyFirstAnnotation {
        // 注解的参数: 参数类型 + 参数名()
        String name() default "狂神";
        int age();
        int id() default -1; // 如果默认值为-1,代表不存在

        String[] schools() default {"北大", "清华"};
    }

    // 如果只有一个参数,建议使用value()
    @Target(value = {ElementType.METHOD, ElementType.TYPE})
    @Retention(value = RetentionPolicy.RUNTIME)
    @interface  MySecondAnnotation {
        String[] value();
    }
}
4. 反射机制

​ 动态语言:在运行时可以根据某些条件改变自身的结构。
​ 静态语言:运行时结构不可变。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/682473.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号