最近我在下面的代码中遇到了编译错误:
import org.eclipse.swt.widgets.TreeItem;
Object parent; // can only be a Tree or a TreeItem
...
TreeItem item = new TreeItem((parent instanceof TreeItem) ? (TreeItem) parent : (Tree) parent, SWT.NONE);
编译器说:“构造函数 TreeItem(Widget, int) 未定义”
然后我用另一个代码尝试了它:
Object x = new Integer(1);
Test t = new Test((x instanceof String) ? (String) x : (Integer) x);
class Test{
public Test(String s){}
public Test(Integer i){}
}
并得到另一个错误:“构造函数 Test(Object&Serializable&Comparable) 未定义”
所以我被迫使用传统的 if-else 结构。任何想法为什么编译器会这样?