Как проверить “instanceof” класс в kotlin?

В kotlin классе у меня есть параметр метода как объект (См. kotlin документ здесь) для типа класса T. Как возражают, что я передаю различные классы, когда я - вызывающий метод. В Java мы можем способный сравнить использование класса instanceof из объекта, какой класс это.

Таким образом, я хочу проверить и выдержать сравнение во времени выполнения, какой Класс это?

Как я могу проверить instanceof класс в kotlin?

59
задан 21 May 2017 в 18:47

3 ответа

Можно проверить как это

 private var mActivity : Activity? = null

затем

 override fun onAttach(context: Context?) {
    super.onAttach(context)

    if (context is MainActivity){
        mActivity = context
    }

}
0
ответ дан 1 November 2019 в 11:22

Другое решение: KOTLIN

val fragment = supportFragmentManager.findFragmentById(R.id.fragment_container)

if (fragment?.tag == "MyFragment")
{}
0
ответ дан 1 November 2019 в 11:22

Можно прочитать Документацию Kotlin здесь https://kotlinlang.org/docs/reference/typecasts.html . Мы можем проверить, соответствует ли объект данному типу во времени выполнения при помощи is оператор или его отрицаемая форма !is для примера с помощью is:

fun <T> getResult(args: T): Int {
    if (args is String){ //check if argumen is String
        return args.toString().length
    }else if (args is Int){ //check if argumen is int
        return args.hashCode().times(5)
    }
    return 0
}

затем в основной функции я пытаюсь распечатать и показать его на терминале:

fun main() {
    val stringResult = getResult("Kotlin")
    val intResult = getResult(100)

    // TODO 2
    println(stringResult)
    println(intResult)
}

Это - вывод

6
500
-1
ответ дан 1 November 2019 в 11:22

Другие вопросы по тегам:

Похожие вопросы: