Kotlin - 44. Java 호출 kotlin 의 2 (Call Kotlin from Java)
4. 정적 필드 (정적 필드)
(object) (companion object) Kotlin , (backing fields)!
private, ( public):
@JvmField
lateinit
const
1. @JvmField , java kotlin ( public)
// kotlin
class Key(val value: Int) {
companion object {
@JvmField
val COMPARATOR: Comparator = compareBy { it.value }
}
}
// Java
Key.COMPARATOR; // COMPARATOR public static final
2. lateinit , setter ( public)
// kotlin
object Singleton {
lateinit var provider: Provider // lateinit
}
// Java
Singleton.provider = new Provider(); // provider public static final
3. const ( ) , Java public
// kotlin (example.kt )
object Obj {
const val CONST = 1
}
class C {
companion object {
const val VERSION = 9
}
}
const val MAX = 239
// Java
int c = Obj.CONST;
int v = C.VERSION;
int d = ExampleKt.MAX;
5. 정적 방법 (정적 방법)
(object) (companion object) @JvmStatic ,
, !
,@JvmStatic , getter setter !
1:
// kotlin
class C {
companion object {
@JvmStatic fun foo() {}
fun bar() {}
}
}
// Java
C.foo(); // OK,
C.bar(); // ,
C.Companion.foo(); // OK,
C.Companion.bar(); // OK,
2:
// kotlin
object Obj {
@JvmStatic fun foo() {}
fun bar() {}
}
// Java
Obj.foo(); // OK,
Obj.bar(); // ,
Obj.INSTANCE.bar(); // OK,
Obj.INSTANCE.foo(); // OK,
6. 가시 성 (가시 성)
Kotlin Java :
private Java private ;
private Java (package-local);
protected Java protected(Java protected , Java );
internal Java public;
public Java public;
7.KClass
java Kotlin ( KClass ), Java Class kotlin KClass,
Class.kotlin :
kotlin.jvm.JvmClassMappingKt.getKotlinClass(MainView.class)
:http://www.jianshu.com/p/042ea2c9062c CSDN 블 로그:http://blog.csdn.net/qq_32115439 / article / details / 75332128 GitHub 블 로그:http://lioil.win/2017/07/18/Kotlin-kotlinInJava2.html 코딩 블 로그:http://c.lioil.win/2017/07/18/Kotlin-kotlinInJava2.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.