在我的Kotlin项目中,我使用android-gpuimage。 基本上我想从Java转换以下内容:
if (mFilter == null || (filter != null && !mFilter.getClass().equals(filter.getClass()))) {
mFilter = filter;
mGPUImage.setFilter(mFilter);
mFilterAdjuster = new GPUImageFilterTools.FilterAdjuster(mFilter);
}
Android Studio 3的自动转换功能让我:
if (mFilter == null || filter != null && mFilter.javaClass != filter.javaClass) {
mFilter = filter
mGPUImage.setFilter(mFilter)
mFilterAdjuster = GPUImageFilterTools.FilterAdjuster(mFilter)
}
代码无法编译时出现以下错误:
is not satisfied: inferred type GPUImageFilter? is not a subtype of Any
任何帮助将不胜感激。感谢
答案 0 :(得分:0)
错误在哪一行?您试图将可空类型(推断)放入Any
不可为空的内容中。您需要添加抛出的空检查运算符!!
。或者使用let
或if
进行安全检查。所以关闭:
receiver.method(somethingNullable)
做任何一次
receiver.method(somethingNullable!!)
或
somethingNullable?.let {
receiver.method(it)
}
或
if (somethingNullable != null) {
receiver.method(somethingNullable)
}
而不是