'Implement interface with suspend function from kotlin in java class
I have kotlin Interface with name MediaBucketProvider. this interface
have 1 suspend functuion that return entity list
interface MediaBucketProvider {
suspend fun getMediaBuckets(bucketType: BucketType): List<MediaBucket>
}
When implementing this interface into kotlin class it worked fine. but when i want to implement this interface in java class like this
class BucketProviderImpl implements MediaBucketProvider {
@Nullable
@Override
public Object getMediaBuckets(@NotNull BucketType bucketType, @NotNull Continuation<? super List<? extends MediaBucket>> $completion) {
//return buckets
}
}
build failed with below error
BucketProviderImpl.java:14: error: BucketProviderImpl is not abstract and does not override abstract method getMediaBuckets(BucketType,Continuation<? super List<MediaBucket>>) in MediaBucketProvider
class CustomLoaderJavaClass implements MediaBucketProvider {
^
When i remove suspend modifier from interface function build not failed anymore.
I see the kotlin-to-java implementation of Kotlin class that implement MediaBucketProvider interface its not different between BucketProviderImpl and java code of KotlinBucketProviderImpl
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
