简化复杂的三元条件

时间:2019-06-12 23:02:32

标签: java nested ternary-operator

我想将结果赋值为“ 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 :(得分:0)

考虑将此功能分解为实用程序功能。

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;
}

签出code review stack exchange