? : 三目元素符的嵌套

167 阅读1分钟

今天看到一行代码,设计到三目元素符的嵌套

 Object encodeOutcome(T t, Throwable x) {
        return (x == null) ? (t == null) ? NIL : t : encodeThrowable(x);
    }

正常的是 reg1?v1:v2; 按从左到右 转化下

 Object temp = (t == null) ? NIL : t;
return (x == null) ? (temp) : encodeThrowable(x);