在我的 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
任何帮助将不胜感激。谢谢
错误发生在哪一行?您试图将可空类型(推断的)放入不可为空的 Any
类型中。您需要添加一个会抛出异常的空检查运算符 !!
。或者使用 let
或 if
进行安全检查。因此,请关闭:
receiver.method(somethingNullable)
做任何一个
receiver.method(somethingNullable!!)
或
somethingNullable?.let {
receiver.method(it)
}
或
if (somethingNullable != null) {
receiver.method(somethingNullable)
}
而不是
我是一名优秀的程序员,十分优秀!