0%

Kotlin标准库中,let, run, with, apply, also 这些函数在官方文档中称为 Scope Functions 。在结合 Lambda 表达式情况下,用这些函数写一些特定逻辑还是很方便的。

下面通过两个测试类阐述一下各个函数的使用方法。

阅读全文 »

在开发手机端App时,通常会出现移动端新页面开发的差不多了,后台接口还没Ready,导致前后端联调浪费了大量时间。
联调过程中又往往涉及到测试服务的切换、抓包验证以及测试异常数据等测试。进而涉及到App重新打包,配置Charles等抓包工具,后台改数据等等工作,非常麻烦。

今天就使用Node.js实现一个用来调试的server,简化这些调试工作。

阅读全文 »

假设有个Person类,含有两个属性name和age先看一个Java版本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public 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
11
MyClient.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中可以通过静态代理或动态代理两种方式实现代理模式。其中静态代理容易理解,但由于需要编写大量代理类及代理方法代码,非常不利于维护;而动态代理的代理类在运行时生成,也不用编写大量重复性代码,相比静态代理有很大的优势。

阅读全文 »

Android中的联系人存储是通过ContentProvider实现的。因此APP对系统通讯录进行操作涉及到ContentProvider接口的使用。

通讯录存储常用的数据库表

使用有关接口前,首先了解一下通讯录数据库中常用的数据库表:

阅读全文 »

闭包是JavaScript比较有意思的特性,也是比较难搞懂的一个概念。

典型示例

一个比较典型的例子就是打印循环计数——
首先我们写一个小循环,直接打印循环变量i

1
2
3
4
5
function testA() {
for(var i = 0; i < 10; i++) {
console.log("current: " + i);
}
};

阅读全文 »

有时候为了满足需求,我们需要在自己的类中进行线程管理/开启线程,并回调我们自己封装好的回调方法。例如:

1
2
3
4
5
6
7
8
9
10
11
12
13
public void someTask() {
new Thread() {
@Override
public void run() {
int n = yourObject.someApi();
onGetResult(n);
}
}.start();
}

private void onGetResult(int result) {
// 处理获取结果
}

阅读全文 »