美文网首页
java 到 kotlin 记录

java 到 kotlin 记录

作者: 少爷1103 | 来源:发表于2017-06-15 15:20 被阅读0次

    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>

    相关文章

      网友评论

          本文标题:java 到 kotlin 记录

          本文链接:https://www.haomeiwen.com/subject/kdyeqxtx.html