Kotlin标准库中,let
, run
, with
, apply
, also
这些函数在官方文档中称为 Scope Functions 。在结合 Lambda 表达式情况下,用这些函数写一些特定逻辑还是很方便的。
下面通过两个测试类阐述一下各个函数的使用方法。
A long way to go.
Kotlin标准库中,let
, run
, with
, apply
, also
这些函数在官方文档中称为 Scope Functions 。在结合 Lambda 表达式情况下,用这些函数写一些特定逻辑还是很方便的。
下面通过两个测试类阐述一下各个函数的使用方法。
现在的Android项目普遍使用Retrofit+RxJava的组合实现网络接口请求与数据的展现。这一功能通过Kotlin语言的协程功能也可以很方便的实现。
在开发手机端App时,通常会出现移动端新页面开发的差不多了,后台接口还没Ready,导致前后端联调浪费了大量时间。
联调过程中又往往涉及到测试服务的切换、抓包验证以及测试异常数据等测试。进而涉及到App重新打包,配置Charles等抓包工具,后台改数据等等工作,非常麻烦。
今天就使用Node.js实现一个用来调试的server,简化这些调试工作。
最近将项目中的Retrofit由1.9升级到2.3版本。
在没有更改请求配置的情况下,发现请求头的Content-Type不一样了。
通过抓包查看请求,
1.9版本POST请求的Header字段
假设有个Person类,含有两个属性name和age先看一个Java版本1
2
3
4
5
6
7
8
9
10
11
12
13
14public class PersonJava {
private final String mName;
private final int mAge;
public PersonJava(String name) {
this.mName = name;
this.mAge = 0;
}
public PersonJava(String name, int age) {
this.mName = name;
this.mAge = age;
}
}
Java很多框架或库中都会提供具有范型的回调接口或抽象类。当我们在使用时,代码类似于:1
2
3
4
5
6
7
8
9
10
11MyClient.getInstance().handleEvent(new MyCallback<SomeEntity>() {
@Override
public void onSuccess(SomeEntity entity) {
System.out.println("Entity is: " + s);
}
@Override
public void onFailure(String errorMsg) {
System.out.println(errorMsg);
}
});
在实际的项目开发中,会大量的用到代理模式。这一设计模式又与面向切面编程(AOP)紧密相关。
Java中可以通过静态代理或动态代理两种方式实现代理模式。其中静态代理容易理解,但由于需要编写大量代理类及代理方法代码,非常不利于维护;而动态代理的代理类在运行时生成,也不用编写大量重复性代码,相比静态代理有很大的优势。
有时候为了满足需求,我们需要在自己的类中进行线程管理/开启线程,并回调我们自己封装好的回调方法。例如:1
2
3
4
5
6
7
8
9
10
11
12
13public void someTask() {
new Thread() {
@Override
public void run() {
int n = yourObject.someApi();
onGetResult(n);
}
}.start();
}
private void onGetResult(int result) {
// 处理获取结果
}