目录
一、接口回调
在C、C++、JavaScript等很多语言中,存在”函数回调“这个用法,具体操作是可以把一个函数(比如函数A)作为实参向另一个函数(比如函数B)传递,此时函数B中就可以直接调用函数A了
在Java中,函数需要存在与某个对象之中,一个函数如果需要被别人带哦用,那就需要确定函数的返回值类型、函数名、形参列表、抛出的异常等,使用接口就可以规定这些,Java中通过“接口回调”来实现“函数回调”的方法
二、注解
注解可以用来修饰程序元素(方法、类、成员属性、参数等等),起到标记的作用,之后其他代码就可以为这些程序元素添加额外的功能
一个程序元素可以被多个注解修饰(修饰是没有顺序的),但是一个注解只能修饰一个程序元素。注解是有属性的,其中有个特殊的属性叫做value,直接往注解里传递的值,是它的value属性。
//eg:假设存在注解@Template1、@Template2,且它们可以修饰所有的程序元素
@Template2
@Template1
//注释不影响当前这个A类是被Template2和Template1两个注解修饰的
public class A{
@Template1
private String name; //name上有@Template1修饰
@Template1
private Integer age; //age上有@Template1修饰
private B b; //b上没有注解修饰
@TestA("a") //字符串"a"会被传递到TestA的value属性中,只有value属性不需要写属性名
private String test;
@TestA(foo = "t") //传递其他属性到注解TestA中,需要属性名=属性值
private Integer aaa;
@TestA(value="aa", foo="22") //如果需要同时传递value和别的属性,value也需要写属性名
private Integer aa;
}
public @interface TestA{
//注解的属性,写成函数形式,函数的返回值相当于属性的类型,default后是这个属性的默认值
String value() default "";
String foo() default "";
}
//mybatis中@Param的用法:
@Param("page") //代表字符串"page"会被传递到Param注解的value属性中