2017 google IO 宣布kotlin正式成為官方支持的語(yǔ)言。最近開(kāi)始做一個(gè)新的項(xiàng)目,就在項(xiàng)目中嘗試了用kotlin來(lái)開(kāi)發(fā)。
開(kāi)發(fā)過(guò)程中遇到了一些問(wèn)題。Java和 Kotlin的寫(xiě)法有很大的區(qū)別,所以整理了一下做個(gè)記錄。
1.單例
單例是我們?cè)陂_(kāi)發(fā)中經(jīng)常會(huì)寫(xiě)到的。
Java的寫(xiě)法:
<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的寫(xiě)法:
<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.靜態(tài)方法
kotlin中沒(méi)有static 關(guān)鍵字,不能像Java一樣直接類(lèi)名.方法 調(diào)用方法。但是可以使用object關(guān)鍵字,代替class關(guān)鍵字
<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>
調(diào)用的時(shí)候直接LogUtil.d("TAG","log")即可
3.三目運(yùn)算
kotlin中沒(méi)有三目運(yùn)算符不能像Java如下寫(xiě)法
<pre><code>
int a = 1;
boolean b = a == 1 ? true : false;
</code></pre>
Kotlin中用 if else 替代三目預(yù)運(yùn)算:
<pre><code>
fun max(a: Int,b :Int) : Int = if (a > b) a else b
println(fun(1,2))
</code>