Упростить сложное тройное состояние - PullRequest
0 голосов
/ 13 июня 2019

Я хочу присвоить значение результату как «read_only», «write_only» или «read_write».Для этого я хочу проверить resourceKey.

 result =  resourceKey.get("read") == null ?
                    Constants.WRITE_ONLY :
                    resourceKey.get("write") == null ?
                            Constants.READ_ONLY :
                            Constants.READ_WRITE;

Я хочу упростить это троичное условие.

1 Ответ

0 голосов
/ 13 июня 2019

Подумайте о том, чтобы разбить эту функцию на служебную функцию.

void Thing() {
    // stuff
    var result = GetPermissions(resourceKey);
    // other stuff
}

static int GetPermissions(resourceKey) {
    if( resourceKey.get("read") == null )
        return Constants.WRITE_ONLY;
    if( resourceKey.get("write") == null )
        return Constants.READ_ONLY;

    return Constants.READ_WRITE;
}

Проверьте обмен стека проверки кода .

...