【发布时间】:2012-10-15 16:05:19
【问题描述】:
可能重复:
Java conditional operator ?: result type
NullPointerException through auto-boxing-behavior of Java ternary operator
假设我有两个功能:
f(MyObject o) { ... }
f(int i) { ... }
我这样称呼他们:
f(someCondition ? 10 : null);
这可以编译,但是当我运行它时,我得到一个空指针异常(抱歉,我不确定在哪种情况下)。我的一些问题是:
- 为什么它甚至可以编译?
foo ? 10 : null的类型是什么? - 它显然没有调用“正确”函数,因为这不会导致 NPE。那么它调用的是哪个函数呢?是
f((MyObject)10);还是f((int)null)?
【问题讨论】:
标签: java ternary-operator overloading