注解

项目结构

在这里插入图片描述

ParseAnnotation.java

package 解析注解;

import java.lang.reflect.Method;
import java.util.Scanner;

import 注解.Annotation;

public class ParseAnnotation {
	
	public static void main(String[] args) throws Exception {
		String author;
		Scanner sc = new Scanner(System.in);
		author = sc.next();
		
		Class c = Class.forName("使用注解.UseAnnotation");
		Method[] ms = c.getDeclaredMethods();
		for(Method m:ms) {
			//获取方法前面类型为Annotation的注解
			Annotation annotation = m.getAnnotation(Annotation.class);
			if(annotation!=null&&annotation.author().equals(author)) {
				m.invoke(c.newInstance());
			}
		}
	}
}

UseAnnotation.java

package 使用注解;
import 注解.Annotation;
public class UseAnnotation {
	@Annotation(author="zjh_1")
	public void fun1() {
		System.out.println("第一个方法");
	}
	@Annotation(author="zjh_2")
	public void fun2() {
		System.out.println("第二个方法");
	}
	@Annotation(author="zjh_3")
	public void fun3() {
		System.out.println("第三个方法");
	}
}

Annotation.java

package 注解;

import static java.lang.annotation.ElementType.FIELD;
import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.ElementType.TYPE;
import static java.lang.annotation.RetentionPolicy.RUNTIME;

import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;

//注解是否将包含在JavaDoc中,它代表着此注解会被javadoc工具提取成文档
@Documented
//如何存储注解
@Retention(RUNTIME)
//注解用于什么地方
@Target({TYPE,FIELD,METHOD})
public @interface Annotation {
	String author() default "zjh";
}


Console
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值