Kotlin 1.2.50
我具有以下提供的依赖关系,该依赖关系将创建MovieListItemDecorator,并在构造函数中将传递一个drawable。但是,getDrawable方法可以返回可为空的值:
即
@Nullable
public static final Drawable getDrawable(@NonNull Context context, @DrawableRes int id)
我在想如何处理getDrawable返回空值的情况:我在下面指定了2种情况。但是,如果getDrawable确实返回null,我不想在MovieItemDecorator()
1)
@MovieListScope
@Provides
fun provideMovieItemDecorator(context: Context): MovieItemDecorator {
var drawable: Drawable by Delegates.notNull()
ContextCompat.getDrawable(context, R.drawable.blue_border)?.let {
drawable = it
}
return MovieItemDecorator(drawable)
}
2)
@MovieListScope
@Provides
fun provideMovieItemDecorator(context: Context): MovieItemDecorator {
ContextCompat.getDrawable(context, R.drawable.blue_border)?.let {
return MovieItemDecorator(it)
} ?: {
return MovieItemDecorator(....) /* what to return here */
}
}
答案 0 :(得分:1)
很难理解您的问题,但是我猜想您最终想要一个MovieDecorator。
如果此MovieItemDecorator需要一个drawable参数,那么对于null情况,您必须具有一个drawable(例如ColorDrawable)
@MovieListScope
@Provides
fun provideMovieItemDecorator(context: Context) : MovieItemDecorator {
val drawable = ContextCompat.getDrawable(context, R.drawable.blue_border) ?: ColorDrawable()
return MovieItemDecorator(drawable as Drawable)
}