一开始我是从lambda表达式的使用上延伸到java8的特性以及google自己的jack编译器等知识上来的。
在这里申明一下,这只是我的个人学习记录,所以这篇文章在逻辑安排以及调理上不是很完善,见谅!
首先是lambda表达式,lambda表达式在许多语言中都有应用,java在8中也增加了这一语法!在java中的运用很好的替代了匿名内部类的不确定性以及不可读性,
Subscription scanSubscription = rxBleClient.scanBleDevices()
.subscribe(
rxBleScanResult -> {
// Process scan result here.
mView.showLog("Ok");
mView.showToast(rxBleScanResult.getBleDevice().getName());
},
throwable -> {
// Handle an error here.
mView.showLog("have exception");
}
);
->符号是lambda表达式的基本用法。
java8的新属性::
具体用法如下:
@FunctionalInterface
interface Converter<F, T> {
T convert(F from);
}
int a(String str){return 0;}
void b(){
Converter<String,Integer> conter=this::a;
int a=converter.convert("x").intValue();
}
用于引用方法以及构造函数,构造函数通过new方法使用。
更多java8的特性如优化的集合框架,Date框架,注解等,参见java8特性
而对于jack编译器上,由于google尚不完善,不推荐使用,不过这个玩意就像14年的AndroidStudio一样,势必会成为开发Android的首选,建议了解一下。jack以及jill简介
end!