java - 简化复杂的三元条件

标签 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;

我想简化这个三元条件。

最佳答案

考虑将此功能分解为实用函数。

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

关于java - 简化复杂的三元条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56571374/

相关文章:

java - 在 Okhttp android 库中使用异步时如何将响应数据返回给主类?

java - 将单独的 java 应用程序集成为单个应用程序的模块

java - Java 类和包的设计

c# - 转换包含通用字典的通用字典

c - 条件移动优化是否针对 C 标准?

java - Selenium 中的数据提供者与 TestNG 不匹配

Python:转换深层嵌套字典或数组中的类型

ruby-on-rails - rails accepts_nested_attributes_for :reject_if not working

三元逻辑和复用逻辑之间的连接?

python - 三元运算符在Python中是如何实现的