Есть ли способ изменить выражение Kotlin when, чтобы оно включало enum более эффективно? - PullRequest
0 голосов
/ 12 марта 2019

Есть ли способ изменить выражение Kotlin when, чтобы оно включало enum более эффективно?

Например:

val objectType = when (directoryType) {
    UnixFileType.D -> "d"
    UnixFileType.HYPHEN_MINUS -> "-"
    UnixFileType.L -> "l"
}

Кому:

val objectType = when (directoryType.UnixFileType) {
   D -> "d"
   HYPHEN_MINUS -> "-"
   L -> "l"
}

Я немного покопался и не нашел рабочего решения. Кто-нибудь знает, если я просто что-то напутал или это незавершенная работа или что-то, что они не добавляют?

1 Ответ

4 голосов
/ 12 марта 2019

Вы можете сделать это, вам просто нужно импортировать конкретные значения перечисления напрямую:

import com.example.UnixFileType.D
import com.example.UnixFileType.HYPHEN_MINUS
import com.example.UnixFileType.L

val objectType = when (directoryType) {
    D -> "d"
    HYPHEN_MINUS -> "-"
    L -> "l"
}

Или со звездочкой:

import com.example.UnixFileType.*

val objectType = when (directoryType) {
    D -> "d"
    HYPHEN_MINUS -> "-"
    L -> "l"
}

Подсказка: вы можетеПреобразуйте более подробную версию, поместив курсор на один из UnixFileType и выбрав Импортировать участников из com.example.UnixFileType намерения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...