java 到 kotlin 记录

2017-06-15  本文已影响0人  少爷1103

2017 google IO 宣布kotlin正式成为官方支持的语言。最近开始做一个新的项目,就在项目中尝试了用kotlin来开发。
开发过程中遇到了一些问题。Java和 Kotlin的写法有很大的区别,所以整理了一下做个记录。

1.单例

单例是我们在开发中经常会写到的。

Java的写法:
<pre><code>
package pinkdiary.xiaoxiaotu.com.net;

public class HttpMethods {

private static HttpMethods INSTANCE;
public static HttpMethods getINSTANCE(){
    if (null == INSTANCE){
        INSTANCE = new HttpMethods();
    }
    return INSTANCE;
}}

</code></pre>
Kotlin的写法:
<pre><code>
class HttpMethods{

companion object{
    private var INSTANCE: HttpMethods? = null
    fun getInstance(): HttpMethods{
        if (null == INSTANCE){
            INSTANCE = HttpMethods()
        }
        return INSTANCE as HttpMethods
    }
}

}
</code></pre>

2.静态方法

kotlin中没有static 关键字,不能像Java一样直接类名.方法 调用方法。但是可以使用object关键字,代替class关键字

<pre><code>
object LogUtil {

val doLog = BuildConfig.DEBUG
private val APP = "Log"
fun d(TAG: String, log: String) {
    if (!doLog) {
        return
    }
    Log.d(APP, "[$TAG]:$log")
}

}
</code></pre>
调用的时候直接LogUtil.d("TAG","log")即可

3.三目运算

kotlin中没有三目运算符不能像Java如下写法
<pre><code>
int a = 1;

boolean b = a == 1 ? true : false;
</code></pre>
Kotlin中用 if else 替代三目预运算:
<pre><code>
fun max(a: Int,b :Int) : Int = if (a > b) a else b

println(fun(1,2))
</code>

上一篇下一篇

猜你喜欢

热点阅读