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>