java 209_自定义注解_练习

1.先创建一个包
2.右键 -->New -->Annotation 写入名称
在这里插入图片描述
3.自定义注解,元注解 :
1)使用@interface自定义注解时,自动继承了java.lang.annotation.Annotation接口
2)要点:
a)@interface用来声明一个注解
格式为: public @interface 注解名{定义体}
b)其中的每一个方法实际上是声明了一个配置参数
-方法的名称就是参数的名称
-返回值类型就是参数的类型(返回值类型只能是基本类型,class,String,enum)
-可以通过default来声明参数的默认值
-如果只有一个参数成员,一般参数名为value
3)元注解:
a)元注解的作用就是负责注解其他注解,java定义了4个标准的meta-annotation类型
它们被用来提供对其他annotation类型作说明
b)这些类型和它们所支持的类在java.lang.annotation包中可以找到
-@Target 学这个
-@Retention 学这个
-@Documented 用的不多
-@Inherited 用的不多

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
//-----------程序练习--------------------------
package java_209_自定义注解_练习;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
*

  • Target目标;ElementType元素类型;METHOD方法;TYPE类型
  • Retention保留;RetentionPolicy保存策略;RUNTIME运行时
    */
    @Target(value={ElementType.METHOD,ElementType.TYPE})//这个即可以修饰类也可以修饰方法 ;这是个数组

@Retention(RetentionPolicy.RUNTIME)//
public @interface SxtAnnotation01 {//interface接口; SxtAnnotation设置状态
//studentName学生姓名;default默认值
String studentName() default “”;//如果不加 default ""系统默认值 ;后面Demo02就会报错
int age() default 0;
int id() default -1;//如果默认值为-1的话;表示这个值本身不存在

//数组;schools学派
String[]  schools() default{"北京大学,东北大学"};//可以设置,默认学校

}

//-------------------------------------------------------
package java_209_自定义注解_练习;

@SxtAnnotation01//但如果SxtAnnotation01类前面加了@Target(value={ElementType.METHOD,ElementType.TYPE})就不会报错
public class Demo02 {

//@SxtAnnotation01//这个只能放在方法前面;如果放到类前面就会报错
@SxtAnnotation01(age=19,studentName="张三",id=1001,
		schools={"北京大学","南京大学"})//也可以在这里显示定义值
public void test(){
	
}
//因为SxtAnnotation02没有赋值;所以在这里赋值也可以
@SxtAnnotation02(value="李四")//就一个值也可以在()直接写李四不用写value=
public void test2(){
	
}

}
//---------------------------------------------
package java_209_自定义注解_练习;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target(value={ElementType.METHOD,ElementType.TYPE})//这个即可以修饰类也可以修饰方法 ;这是个数组
@Retention(RetentionPolicy.RUNTIME)//
public @interface SxtAnnotation02 {
//如果参数只有一个;常用value
String value();
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值