https://kotlinlang.org logo
#multiplatform
Title
# multiplatform
d

Dmitry Motyl

04/25/2019, 1:28 PM
Guys, how can I resolve this problem? What I need to import?
Unresolved reference: WeakReference
d

diesieben07

04/25/2019, 1:30 PM
WeakReference
is a class from JDK, it can only be used in Java modules.
s

svyatoslav.scherbina

04/25/2019, 1:33 PM
d

Dmitry Motyl

04/25/2019, 1:34 PM
Which module is it needed to import ?
r

ribesg

04/25/2019, 1:35 PM
You should provide more details about what you’re doing. Where did you put that reference that is unresolved?
If you’re in
common
sourceSet and only have
jvm/android
and
native/ios
targets, you can just use
expect class WeakReference<T: Any>
somewhere in your common code I guess
d

Dmitry Motyl

04/25/2019, 1:37 PM
In commonMain module
r

ribesg

04/25/2019, 1:38 PM
I you have a
js
target you can’t use
WeakReference
d

Dmitry Motyl

04/25/2019, 1:38 PM
Ok. Thx. I got it
Why WeakReference has method
clear
? I thought it must work automatically
r

ribesg

04/25/2019, 1:46 PM
Weak reference doesn’t mean no reference
d

Dmitry Motyl

04/25/2019, 1:47 PM
I must call
clear
directly?
d

diesieben07

04/25/2019, 1:47 PM
No.
d

Dmitry Motyl

04/25/2019, 1:52 PM
If I use
expect class WeakReference<T: Any>
I get issue that
It has no actual declaration in module iosMain for Native
=(
r

ribesg

04/25/2019, 1:55 PM
You need a typealias
actual typealias WeakReference<T> = kotlin.native.ref.WeakReference<T>
And on the JVM side
actual typealias WeakReference<T> = java.lang.ref.WeakReference<T>
You probably need to add things like a
get
function etc
d

Dmitry Motyl

04/25/2019, 2:00 PM
hmm, strange I think It must be simpler
Does somebody know example of using WeakReference in common module ?
r

ribesg

04/25/2019, 2:16 PM
What’s so hard?
Copy code
// Common
expect class WeakReference<T: Any> {
    fun get(): T?
}

// JVM/Android
actual typealias WeakReference<T> = java.lang.ref.WeakReference<T>

// Native/iOS
actual typealias WeakReference<T> = kotlin.native.ref.WeakReference<T>
👍 1
2 Views