IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> 注解基础讲解 -> 正文阅读

[开发工具]注解基础讲解

1.注解的优势

  • 注解和配置文件
配置文件:有较好的扩展性和阅读性
注解:对类、方法、变量做标记(解释、处理),然后用反射去有选择的执行一些赋值、调用方法

2.注解的概述

1.注解就是标记解释用的

- jdk中常见的注解

@Override		// 重写方法上面,验证重写格式是否正确
@Deprecated		// 过期方法上
@SuppressWarnings(value = "all")	压制警告,让idea等工具的编译器不提示警告(类,和方法上)
@FunctionalInterface	// 函数式接口上,验证是否只有一个抽象方法

3.自定义注解

public @interface 注解名{
	public 属性类型	属性名 ()	default 默认值;
	public int a () default 23;
}
- 属性类型
	- 基本数据类型
	- String
	- Class
	- 注解
	- 枚举
	- 以上数据类型的一维数组

4.自定义注解练习

  • 需求
通过注解 指定程序运行时 通过反射,执行@Test注解的方法
  • 代码
package com.itheima.annotation;

import com.itheima.thread.Demo;

import java.lang.annotation.*;

@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD,ElementType.METHOD,ElementType.TYPE})
@Inherited
public @interface Test {
    int age() default 23;
    String name() default "zhangsan";
    Class clazz() default Demo.class;
    int[] scores() default {23,24,25};
}


---------------------------------------------------

package com.itheima.annotation;

public class AnnotationTest {
    @Test
    public void method1(){
        System.out.println("method1");
    }

    public void method2(){
        System.out.println("method2");
    }

    @Test
    public void method3(){
        System.out.println("method3");
    }
}

------------------------------------------------

package com.itheima.annotation;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

public class Main {
    public static void main(String[] args) throws ClassNotFoundException, IllegalAccessException, InstantiationException, InvocationTargetException {
        Class<?> clazz = Class.forName("com.itheima.annotation.AnnotationTest");
        AnnotationTest annotationTest = (AnnotationTest) clazz.newInstance();
        Method[] methods = clazz.getDeclaredMethods();
        for (Method method : methods) {
            if(method.isAnnotationPresent(Test.class)){
                method.invoke(annotationTest);
            }
        }
    }
}

5.元注解

  • Java中的元注解
描述注解的注解,给注解做标记和解释

- @Target	指定当前注解能在哪里使用:类、成员变量、成员方法等等
- @Retention	指定当前注解的保留时间(生命周期)
- @Inherited	当前注解可以被子类继承
- @Document		当前注解会出现在API文档中
  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2021-09-23 11:39:21  更:2021-09-23 11:39:47 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 2:52:25-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码