广州第一网站,网站建设主要推广方式,wordpress菜单没有了,wordpress mp3 缓存概述
注解是对程序代码进行标注和解释的一种方式。在Java中#xff0c;注解提供了一种元数据形式#xff0c;能够在程序中嵌入有关程序的信息#xff0c;以便进行进一步的处理。注解通过使用符号来声明#xff0c;如Override、Deprecated等。
注解和注释的区别
注释注解提供了一种元数据形式能够在程序中嵌入有关程序的信息以便进行进一步的处理。注解通过使用符号来声明如Override、Deprecated等。
注解和注释的区别
注释是给程序员看的不会对程序产生任何影响。注解是给编译器或其他工具看的可以在编译、运行时进行一些特殊操作。
使用注解进行配置的优势
使用注解进行配置能使代码更简洁、方便而不再需要繁琐的配置文件。注解能够直观地标识出程序中的关键信息提高代码的可读性和可维护性。
自定义注解
格式
javaCopy codepublic interface 注解名称 {public 属性类型 属性名() default 默认值;
}属性类型
基本数据类型StringClass注解枚举以上类型的一维数组
示例代码
javaCopy codepublic interface Anno2 {
}public enum Season {SPRING, SUMMER, AUTUMN, WINTER;
}public interface Anno1 {// 定义一个基本类型的属性int a() default 23;// 定义一个String类型的属性String name() default shizhanban;// 定义一个Class类型的属性Class clazz() default Anno2.class;// 定义一个注解类型的属性Anno2 anno() default Anno2;// 定义一个枚举类型的属性Season season() default Season.SPRING;// 以上类型的一维数组// int数组int[] arr() default {1, 2, 3, 4, 5};// 枚举数组Season[] seasons() default {Season.SPRING, Season.SUMMER};// value。后期我们在使用注解的时候如果我们只需要给注解的value属性赋值。// 那么value就可以省略String value();
}// 在使用注解的时候如果注解里面的属性没有指定默认值。
// 那么我们就需要手动给出注解属性的设置值。
//Anno1(name shizhanban)
Anno1(abc)
public class AnnoDemo {
}注意
如果只有一个属性需要赋值并且属性的名称是value则value可以省略直接定义值即可。
自定义注解案例
需求
自定义一个注解Test用于指定类的方法上如果某一个类的方法上使用了该注解就执行该方法。
实现步骤
自定义一个注解Test并在类的某几个方法上加上注解。在测试类中获取注解所在类的Class对象。获取类中所有的方法对象。遍历每一个方法对象判断是否有对应的注解。
javaCopy code// 表示Test这个注解的存活时间
Retention(value RetentionPolicy.RUNTIME)
public interface Test {
}public class UseTest {// 没有使用Test注解public void show() {System.out.println(UseTest....show....);}// 使用Test注解Testpublic void method() {System.out.println(UseTest....method....);}// 没有使用Test注解Testpublic void function() {System.out.println(UseTest....function....);}
}public class AnnoDemo {public static void main(String[] args) throws ClassNotFoundException, IllegalAccessException, InstantiationException, InvocationTargetException {// 1.通过反射获取UseTest类的字节码文件对象Class clazz Class.forName(com.shizhanban.UseTest);// 创建对象UseTest useTest (UseTest) clazz.newInstance();// 2.通过反射获取这个类里面所有的方法对象Method[] methods clazz.getDeclaredMethods();// 3.遍历数组得到每一个方法对象for (Method method : methods) {// method依次表示每一个方法对象。// isAnnotationPresent(Class? extends Annotation annotationClass)// 判断当前方法上是否有指定的注解。// 参数注解的字节码文件对象// 返回值布尔结果。 true 存在 false 不存在if (method.isAnnotationPresent(Test.class)) {method.invoke(useTest);}}}
}元注解
概述
元注解是描述注解的注解。
元注解介绍
Target指定了注解能在哪里使用。Retention可以理解为保留时间生命周期。Inherited表示修饰的自定义注解可以被子类继承。Documented表示该自定义注解会出现在API文档里面。
示例代码
javaCopy codeTarget({ElementType.FIELD, ElementType.TYPE, ElementType.METHOD}) // 指定注解使用的位置成员变量类方法
Retention(RetentionPolicy.RUNTIME) // 指定该注解的存活时间
// Inherited // 指定该注解可以被继承
public interface Anno {
}Anno
public class Person {
}public class Student extends Person {public void show() {System.out.println(student.......show..........);}
}public class StudentDemo {public static void main(String[] args) throws ClassNotFoundException {// 获取到Student类的字节码文件对象Class clazz Class.forName(com.shizhanban.Student);// 获取注解。boolean result clazz.isAnnotationPresent(Anno.class);System.out.println(result);}
}通过元注解我们可以更加灵活地定义和使用自定义注解控制注解的生命周期和作用范围。 文章转载自: http://www.morning.xflzm.cn.gov.cn.xflzm.cn http://www.morning.nrwr.cn.gov.cn.nrwr.cn http://www.morning.yltyr.cn.gov.cn.yltyr.cn http://www.morning.djgrg.cn.gov.cn.djgrg.cn http://www.morning.trhrk.cn.gov.cn.trhrk.cn http://www.morning.qxljc.cn.gov.cn.qxljc.cn http://www.morning.qnbzs.cn.gov.cn.qnbzs.cn http://www.morning.nxtgb.cn.gov.cn.nxtgb.cn http://www.morning.kljhr.cn.gov.cn.kljhr.cn http://www.morning.zwppm.cn.gov.cn.zwppm.cn http://www.morning.jqpq.cn.gov.cn.jqpq.cn http://www.morning.zhqfn.cn.gov.cn.zhqfn.cn http://www.morning.bwttp.cn.gov.cn.bwttp.cn http://www.morning.nqlnd.cn.gov.cn.nqlnd.cn http://www.morning.ndynz.cn.gov.cn.ndynz.cn http://www.morning.fmkjx.cn.gov.cn.fmkjx.cn http://www.morning.cprbp.cn.gov.cn.cprbp.cn http://www.morning.pnmtk.cn.gov.cn.pnmtk.cn http://www.morning.mooncore.cn.gov.cn.mooncore.cn http://www.morning.nkhdt.cn.gov.cn.nkhdt.cn http://www.morning.fmtfj.cn.gov.cn.fmtfj.cn http://www.morning.bswxt.cn.gov.cn.bswxt.cn http://www.morning.jhwwr.cn.gov.cn.jhwwr.cn http://www.morning.cbnlg.cn.gov.cn.cbnlg.cn http://www.morning.dxhdn.cn.gov.cn.dxhdn.cn http://www.morning.shprz.cn.gov.cn.shprz.cn http://www.morning.jfcbs.cn.gov.cn.jfcbs.cn http://www.morning.rxxdk.cn.gov.cn.rxxdk.cn http://www.morning.qbjrf.cn.gov.cn.qbjrf.cn http://www.morning.xzgbj.cn.gov.cn.xzgbj.cn http://www.morning.cwgpl.cn.gov.cn.cwgpl.cn http://www.morning.hwpcm.cn.gov.cn.hwpcm.cn http://www.morning.lbxcc.cn.gov.cn.lbxcc.cn http://www.morning.rrgqq.cn.gov.cn.rrgqq.cn http://www.morning.llxyf.cn.gov.cn.llxyf.cn http://www.morning.xxsrm.cn.gov.cn.xxsrm.cn http://www.morning.qtxwb.cn.gov.cn.qtxwb.cn http://www.morning.smyxl.cn.gov.cn.smyxl.cn http://www.morning.dxsyp.cn.gov.cn.dxsyp.cn http://www.morning.tmbtm.cn.gov.cn.tmbtm.cn http://www.morning.zdbfl.cn.gov.cn.zdbfl.cn http://www.morning.smwlr.cn.gov.cn.smwlr.cn http://www.morning.xqcst.cn.gov.cn.xqcst.cn http://www.morning.mpwgs.cn.gov.cn.mpwgs.cn http://www.morning.rkqkb.cn.gov.cn.rkqkb.cn http://www.morning.hsksm.cn.gov.cn.hsksm.cn http://www.morning.glncb.cn.gov.cn.glncb.cn http://www.morning.lgpzq.cn.gov.cn.lgpzq.cn http://www.morning.plwfx.cn.gov.cn.plwfx.cn http://www.morning.lbxcc.cn.gov.cn.lbxcc.cn http://www.morning.dpplr.cn.gov.cn.dpplr.cn http://www.morning.wnywk.cn.gov.cn.wnywk.cn http://www.morning.dbnrl.cn.gov.cn.dbnrl.cn http://www.morning.rqxmz.cn.gov.cn.rqxmz.cn http://www.morning.hbhnh.cn.gov.cn.hbhnh.cn http://www.morning.mhpkz.cn.gov.cn.mhpkz.cn http://www.morning.ccyjt.cn.gov.cn.ccyjt.cn http://www.morning.qnftc.cn.gov.cn.qnftc.cn http://www.morning.ppgdp.cn.gov.cn.ppgdp.cn http://www.morning.tbknh.cn.gov.cn.tbknh.cn http://www.morning.mbzlg.cn.gov.cn.mbzlg.cn http://www.morning.qcztm.cn.gov.cn.qcztm.cn http://www.morning.ryysc.cn.gov.cn.ryysc.cn http://www.morning.jqtb.cn.gov.cn.jqtb.cn http://www.morning.xkyqq.cn.gov.cn.xkyqq.cn http://www.morning.bgkk.cn.gov.cn.bgkk.cn http://www.morning.yzxlkj.com.gov.cn.yzxlkj.com http://www.morning.drrt.cn.gov.cn.drrt.cn http://www.morning.nmkfy.cn.gov.cn.nmkfy.cn http://www.morning.nytgk.cn.gov.cn.nytgk.cn http://www.morning.mydgr.cn.gov.cn.mydgr.cn http://www.morning.pqkgb.cn.gov.cn.pqkgb.cn http://www.morning.wqwbj.cn.gov.cn.wqwbj.cn http://www.morning.pgcmz.cn.gov.cn.pgcmz.cn http://www.morning.mznqz.cn.gov.cn.mznqz.cn http://www.morning.mfzyn.cn.gov.cn.mfzyn.cn http://www.morning.jbkcs.cn.gov.cn.jbkcs.cn http://www.morning.rpkg.cn.gov.cn.rpkg.cn http://www.morning.dbrnl.cn.gov.cn.dbrnl.cn http://www.morning.gfhng.cn.gov.cn.gfhng.cn