1.Lambda的嵌套使用:
简单介绍一个Lambda表达式:Lambda可以理解为一个匿名的实现类,它是函数式接口的实现,它可以作为参数传递个方法,这里主要的思想即:行为参数化。行为参数化:即将一个行为传递作为参数传递出去,然后该方法内部就可以使用该行为进行特定的逻辑处理。
Lambda表达式是一个实现类,而我们在给目标方法传入该实现类时,直接写入Lambda表达式即可。Lambda表达式参数是表达式自己推断出来的,这个参数不可以在写入Lambda表达式。
因此为了嵌套,我们使用另一种思路:
1.首先我们定义两个函数式接口:
public interface FInterface {
@FunctionalInterface
interface funA{
funB test(String s);
}
@FunctionalInterface
interface funB{
void to();
}
}
2.接下来进行接口的使用
public class TFab {
private static FInterface.funA fa = (s)->{
System.out.println(s.toString());
return ()->{
System.out.println("execute the fb to method");
};
};
public static FInterface.funB toTFAB(){
return fa.test("123");
}
public static void main(String[] args) {
TFab tFab = new TFab();
FInterface.funB fb = tFab.toTFAB();
fb.to();
}
}
解析:实现funA函数式接口,注意该接口有返回值,返回值是funB,因此可以在这里继续使用Lambda表达式来实现FunB的行为。然后我们定义一个方法toTFAB,该方法funB实例,我们只需要调用funA的方法即可,这个时候传入参数即可;最后是执行:创建TFab实例,调用toTFAB即可,然后返回funB对象,接着调用funB的方法即可,因为funB的行为我们已经在fa中实现。
这里的嵌套不是Lambda内部的嵌套,因为Lambda的参数是自己推断的,方法体只能写语句,不能再直接写一个单独的Lambda表达式,因为它是一个匿名的实现类,但是可以通过return语句来写lambda或者在方法内部使用一个实例变量来表保存Lambda表达式,这样实现了lambda内部由一个Lambda。
对于以上的简单案例,可以在实际应用中有哪些使用?
可以在做某些事时,实现一些前要操作的准备。
2.Ajax的使用
现在的网页跳转使用Ajax,不直接使用a连接跳转;
$.ajax({
type: 'post',
url: '../A/B',
data:{
id: data.id,
val: value
},
dataType: 'json',
success: function (data) {
}
});
});
有关url的写法,有好几种,这种比较安全,可以减少IP地址,端口号,页面请求路径的暴露。
3.Controller的RequestMapping的注意
当我们编写控制器(controller类)的时候,尽可能的在类的上方,映射一个根路径,在具体的方法上,则是映射描述该方法的路径,其一:层次分明,映射条理清晰,
如有问题,敬请指出,谢谢观看,与君共勉。