如何比较kotlin中的java类

时间:2018-03-27 02:25:46

标签: java android kotlin

在我的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

任何帮助将不胜感激。感谢

1 个答案:

答案 0 :(得分:0)

错误在哪一行?您试图将可空类型(推断)放入Any不可为空的内容中。您需要添加抛出的空检查运算符!!。或者使用letif进行安全检查。所以关闭:

receiver.method(somethingNullable)

做任何一次

receiver.method(somethingNullable!!)

somethingNullable?.let {
   receiver.method(it) 
}

if (somethingNullable != null) {
    receiver.method(somethingNullable)
}

而不是