-
@Override 对父类方法的重写(覆盖) @Deprecated 表示接口中的方法已经过时 @SuppressWarnings("deprecation") 对过时的方法重新使用,加以肯定查看全部
-
@interface 定义注解关键字 注解成员类型包括:基本数据类型以及String类型,Class,Annotation和Enumeration 如果注解只有一个成员则成员名必须是value() 注解类可以没有成员,则是标识注解查看全部
-
//4.3拼装sql if(fieldValue == null || fieldValue instanceof Integer && (Integer)fieldValue == 0) { continue;} sb.append("and").append(filedName); if(fieldValue instanceof String){ String[] values = ((String)fieldValue).split(","); sb.append("in("); for(String v:values){sb.append("'").append(v).append("'").append("'");} sb.deleteCharAt(sb.length-1); sb.append(")"); }else{ sb.append("=").append("'").append(fieldValue).append("'");} }else if(fieldValue instanceof Integer){ sb.append("=").append(fieldValue);} return sb.toString(); }查看全部
-
private static String query(Object f){ StringBuilder sb = new StringBuilder(); Class c = f.getClass(); //解析注解必须先获取到class boolean exits = c.isAnnotationPresent(Table.class)//获取到table的名字 if(!exits){ return null; } Table t = (Table)c.getAnnotation(Table.class); String tableName = t.value(); sb.append("select * from").append(tableName).append("where 1=1"); Field[] fArray =c.getDeclaredFields(); //遍历所有的字段 for(Field field : fArray){ //处理每个字段对应的sql field.isAnnotationPresent(Column.class); //4.1拿到字段名 if(!fExists){continue;} Column column = field.getAnnotation(Column.class); String columnName = column.value(); String filedName = field.getName();//获取一个为Id的方法名 String getMethodName = "get"+filedName.substring(0,1).toUpperCase()+filedName.substring(1); Object field = null; try{ Method getMethod = c.getMethod(getMethodName); field = getMethod.invoke(f); }catch(Exception e){ e.printStackTrace();}查看全部
-
@Table 告诉数据库怎么将其映射成model @Column 表明对应的数据库字段 ----------------自定义注解例子说明------------------------- 1.首先,你需要一个bean可以映射到数据库的bean 2.在bean上面进行映射注解 3.创建每个注解创建Table.java | Column.java 【在注解中进行说明:以Table.java为例】 @Target({ElementType.TYPE});//说明作用域(可有多个值) @Retention(RetentionPolicy.RUNTIME);//指明生命周期(运行时存在) //@interface是用来自定义注释类型的,定义方法与接口类似 //方法的声明中一定不能包含参数及抛异常 //方法的返回值被限制为简单类型(String、Class、emnus...) //方法可以有一个缺省值 public @interface Table{ String value(); } 接后面....4查看全部
-
自定义注解的语法要求查看全部
-
@Inherited该注释对接口继承没有作用,只对类继承有效,而且只继承类的注解不继承方法的注解。查看全部
-
找【运行时】注解: 1.使用类加载器加载类 try{ Class c= Class.forName("com.ann.test.Child"); 2.找到类上面的注解 //判断类上是否有description这个注解 c.isAnnotstionPresent(Desription.class); if(isExit){ //3.拿到注解实例 Description d = (Description)c.getAnnotation(Description.class); System.out.println(d.value()); } //4.找到方法上的注解 Method[] ms= c.getMethods(); for(Method m:ms){ boolean isMexist = m.isAnnotationPresent(Description.class); System.out.print(d.value); } //另一种解析方法 for(Method m :ms){ Annotation[] as = m.getAnnotations(); for(Annotation a : as){ Description d = (Description)a; System.out.println(d.value()); } } }catch(ClassNotFoundException e){ e.printStackTrace(); } ------------------------------------------------- 找注解实例 c.getAnnotation(Description.class); 找方法注解 m.getAnnotation(Description.class); m.getAnnotations();查看全部
-
使用注解的语法: @<注解名>(<成员名1>=<成员值1>,<成员名2>=<成员值2>) @Description(desc=“I am eyeColor”, author=“Mooc boy”, age=18) public String eyeColor() { return “red”; // @Description注解在eyeColor方法上使用 }查看全部
-
自定义注解示例:查看全部
-
元注解:即注解的注解 @Target({ElementType.METHOD,ElementType.TYPE}); //表示注解的作用域(目前这个例子表示在“方法声明”作用域范围) -------------------------------------------------------- 可用作用域范围: Constructor(构造方法) FIELD(字段声明) LOCAL_VARIABLE(局部变量声明) METHOD(方法声明) PACKAGE(包声明) PARAMETER(参数声明) TYPE(类、接口) @Retention(RetentionPoliy.RUNTIME) //生命周期 --------------------------------- 注解按生命周期分类: SOURCE:只在源码显示,编译时会丢弃 CLASS:编译时会记录到class中,运行时忽略 RUNTIME:运行时存在,可以通过反射读取 @Inherited标识性注解 ----- 告诉我们这个注解允许子注解来继承 @Documented ------生成javadoc时会包含注解查看全部
-
自定义注解的语法要求: 1.使用@interface关键字定义注解 2.成员变量必须以无参无异常方式声明且可以给成员指定一个默认值 例:int age() default 18; 3.成员类型是受限的,合法的类型包括原始类型及String、Class、Annotation,Enumeration 4.如果注解只有一个成员,则成员名必须取名为value(),在使用时可以忽略成员名和赋值号(=) 5.注解类可以没有成员,没有成员的注解称为标识注解查看全部
-
自定义注解的语法要求1查看全部
-
自定义注解的语法要求1查看全部
-
----------------------按照运行机制分------------------------ 注解分为源码注解、编译时注解、运行时注解 源码注解:注解只在源码中存在,编译成.class文件就不存在了。 编译时注解:注解在源码和.class文件中都存在。 (例:@Override @Deprecated @Suppvisewarnings都是编译时注解) 运行时注解:在运行阶段还起作用,甚至会影响运行逻辑的注解。 (例:@Autowired自动注入注解) ----------------------按照来源分------------------------ 注解分为来自JDK的注解、【来自第三方的注解】、我们自己定义的注解 元注解:给注解进行注解!查看全部
举报
0/150
提交
取消