Kotlinの最も簡単な入門チュートリアル-Javaと互いに呼び出します

4166 ワード

KotlinでJavaコードを呼び出す
import java.util.*

fun demo(source: List) {
    val list = ArrayList()
    // “for”-     Java   :
    for (item in source) {
        list.add(item)
    }
    //          :
    for (i in 0..source.size() - 1) {
        list[i] = source[i] //    get   set
    }
}

JavaでKotlinを呼び出す
// example.kt
package demo

class Foo

fun bar() {
}


// Java
new demo.Foo();
demo.ExampleKt.bar();

スタティツクメソッド
class C {
    companion object {
        @JvmStatic fun foo() {}
        fun bar() {}
    }
}

//  ,foo()   Java      ,  bar()   :

C.foo(); //    
C.bar(); //   :        
C.Companion.foo(); //       
C.Companion.bar(); //        

可変パラメータ転送
Java                (varargs)        。

public class JavaArrayExample {

    public void removeIndices(int... indices) {
        //     ……
    }
}
      ,           *     IntArray:

val javaObj = JavaArray()
val array = intArrayOf(0, 1, 2, 3)
javaObj.removeIndicesVarArg(*array)
       null

Java反射
Java       Kotlin  ,    。
    ,      instance::class.java, ClassName::class.java    instance.javaClass    java.lang.Class     Java   。

             Kotlin        Java   getter/setter         、
    Java        KProperty、    KFunction      Java         ,    

マッピングされたタイプ
Javaタイプ
Kotlinタイプ
byte
kotlin.Byte
short
kotlin.Short
int
kotlin.Int
long
kotlin.Long
char
kotlin.Char
float
kotlin.Float
double
kotlin.Double
boolean
kotlin.Boolean
一部の非ネイティブの組み込みタイプもマッピングされます.
Javaタイプ
Kotlinタイプ
java.lang.Object
kotlin.Any!
java.lang.Cloneable
kotlin.Cloneable!
java.lang.Comparable
kotlin.Comparable!
java.lang.Enum
kotlin.Enum!
java.lang.Annotation
kotlin.Annotation!
java.lang.Deprecated
kotlin.Deprecated!
java.lang.CharSequence
kotlin.CharSequence!
java.lang.String
kotlin.String!
java.lang.Number
kotlin.Number!
java.lang.Throwable
kotlin.Throwable!
Javaの梱包元のタイプは空のKotlinタイプにマッピングされます.
Java type
Kotlin type
java.lang.Byte
kotlin.Byte?
java.lang.Short
kotlin.Short?
java.lang.Integer
kotlin.Int?
java.lang.Long
kotlin.Long?
java.lang.Character
kotlin.Char?
java.lang.Float
kotlin.Float?
java.lang.Double
kotlin.Double?
java.lang.Boolean
kotlin.Boolean?
タイプパラメータとして使用される梱包元のタイプは、プラットフォームタイプにマッピングされます.たとえば、List
最後にKotlin QQグループに参加して、一緒に勉強を討論することを歓迎します.
微信公号へようこそ