Что означает этот синтаксис в Kotlin? - PullRequest
0 голосов
/ 16 февраля 2019

Я не понимаю синтаксис этого кода.Это массив или вызов функции?

val editText = findViewById<EditText>(R.id.editText)

То же самое в Java:

EditText editText = (EditText) findViewById(R.id.editText);

Ответы [ 2 ]

0 голосов
/ 16 февраля 2019
val editText = findViewById<EditText>(R.id.editText)                           

или

val editText: EditText = findViewById(R.id.editText)

означает то же самое

В приведенном выше коде котлина:

edittext-your variable
findViewById (R.id.editText) - это просто поиск идентификатора edittext

<EditText>

или: EditText - это тип преобразования, который просто сообщает переменной, что тип возвращаемого значения будет иметь тип ediText

Invoking findViewById ()может быть медленным, особенно в случае больших иерархий представлений, поэтому Android Extensions пытается минимизировать вызовы findViewById () путем кэширования представлений в контейнерах. Теперь в kotlin вы можете больше не использовать findviewbyid, и вы можете просто написать выше:

val editText=editText

где,
val editText - переменная
= editText (справа) - идентификатор, который вы хотите найти

Надеюсь, что это ответ на ваш вопрос.

0 голосов
/ 16 февраля 2019

Похоже, что это общий тип.Вместо того, чтобы возвращать родительский класс, он сначала пытается привести его к тому, что вы пытаетесь получить.Пример:

public static <T> T getById() { 
    return (T) this.userService.getById(1);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...