在Kotlin?中使用!!运算符抛出自定义空Assert

mw3dktmi  于 2023-02-16  发布在  Kotlin
关注(0)|答案(2)|浏览(206)

我想把下面的代码从androidjava翻译成Kotlin

public static void Initialize(Context context) {
        if (mInstance == null) {
            mInstance = new AzureServiceAdapter(context);
        } else {
            throw new IllegalStateException("AzureServiceAdapter is already initialized");
        }
    }

我已经阅读了?!!运算符之间的区别,但无法获得我想要的表达式。基本上,我希望在变量不为空时抛出一个自定义异常。然而,我无法让它在使用!!时抛出一个自定义异常,因为它只抛出NPE。

public fun Initialize(context: Context){
        mInstance!!.AzureServicesAdapter(context) ?: throw IllegalStateException("AzureServiceAdapter is already initialised")
    }

以上是我自己转换成Kotlin的代码,但我不确定这是否是正确的举动。谢谢帮助。

agxfikkp

agxfikkp1#

你可以在Kotlin使用同样的方法。

fun Initialize(context: Context) {
        if (mInstance == null) {
            mInstance = AzureServiceAdapter(context)
        } else {
            throw IllegalStateException("AzureServiceAdapter is already initialized")
        }
    }

保持你的代码简单易懂。

sd2nnvve

sd2nnvve2#

mInstance?.AzureServicesAdapter(context) ?: throw IllegalStateException("AzureServiceAdapter is already initialised")

相关问题