-
先看两段代码,比较一下
简化前
/**
* 创建代理 */
* private HttpProxyCacheServer createProxyServer() {
* return new HttpProxyCacheServer.Builder(context).maxCacheSize(1024 * 1024 * 1024)// 1 Gb for cache
*.cacheDirectory(getMusicCacheDir(context)).fileNameGenerator(new FileNameGenerator() {
* @Override
* public String generate(String url)
* {
* int lastIndexOf = url.lastIndexOf("/");
* return url.substring(lastIndexOf - 1);// 名称
* }
* }).build();
* }
用JAVA 中的 -> 简化后是这样的
/**
* /**
* 创建代理
* */
* private HttpProxyCacheServer createProxyServer() {
* return new HttpProxyCacheServer.Builder(context).maxCacheSize(1024 * 1024 * 1024)// 1 Gb for cache
* .cacheDirectory(getMusicCacheDir(context)).fileNameGenerator(url -> {
* int lastIndexOf = url.lastIndexOf("/");
* return url.substring(lastIndexOf - 1);// 名称
* }).build();
* }
就是把 抽象函数的参数单独写出来,进行操作 如果是() ->
那么按钮的单击事件是不是可以这样写?
简化前
bt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
}
});
简化后?
bt.setOnClickListener(() ->{
/*这里单击事件代码*/});
不太确定 ,待填坑。。。