2025/12/30 11:17:41
网站建设
项目流程
.net 导航网站模板,网站实例,沧州住房和城乡建设部网站,货代找客户的网站Annotation作用:不是程序本身#xff0c;可以对程序做出解释可被其他程序读取Override:重写Mapper#xff1a;写在Dao层接口上#xff0c;放入IOC容器select insert update delete : 增删改查接口Deprecated:不推荐使用但能用的内容(或者存在更好的方式)元注解#xff1a;…Annotation作用:不是程序本身可以对程序做出解释可被其他程序读取Override:重写Mapper写在Dao层接口上放入IOC容器select insert update delete : 增删改查接口Deprecated:不推荐使用但能用的内容(或者存在更好的方式)元注解 注解其他的注解仅4类Target:注解的适用范围Retention表示需要在什么时候还有效 一般都是Runtime运行时Document说明该注解被包含在javadoc中Inherited说明子类可以继承父类中的该注解自定义注解interface若无默认值 则必须给注解赋值public class test03 { myAnnotation(value test03) public void test03(){ System.out.println(test03); } } //自定义注解 Target({ElementType.METHOD,ElementType.TYPE}) Retention(RetentionPolicy.RUNTIME) interface myAnnotation { //注解的参数 参数类型 参数名 String value() default ; }反射(Reflection)是Java被视为动态语言的关键一个类在内存中只有一个class对象一个类被加载后类的整个结构都会被封装在Class对象中获得Class类的实例Class c3 Student.class; System.out.println(c3.hashCode()); Class c2 Class.forName(com.study.mapper.Student); System.out.println(c2.hashCode()); //获得父类类型 Class c4 c1.getSuperclass(); System.out.println(c4);类的加载过程顺序class A{ static { System.out.println(A类静态代码块初始化); m300; } static int m 100; public A() { System.out.println(A类构造方法初始化); } }A类静态代码块初始化先加载staticA类构造方法初始化再加载构造器100几种常见用法public class test03 { public static void main(String[] args) throws ClassNotFoundException { Class c1 Class.forName(com.study.mapper.Student); System.out.println(c1.getName()); System.out.println(c1.getSimpleName()); Class c2 Class.forName(com.study.mapper.Person); Field[] field c1.getFields(); for (Field f : field) { System.out.println(f); } Field[] field1 c2.getDeclaredFields(); for (Field f : field1) { System.out.println(f); } Method[] method c1.getMethods(); for (Method m : method) { System.out.println(m); } } }