Java 自动装箱/取消装箱不适用于退货类型?
请看下面的代码Java 自动装箱/取消装箱不适用于退货类型?,java,Java,请看下面的代码 public class Parent { public Object doSomething() { return null; } } class Child extends Parent { public Integer doSomething() { return 0; } } 它在协方差下是完美的,并且编译得很好 何处为 public class Parent { public Integer d
public class Parent {
public Object doSomething() {
return null;
}
}
class Child extends Parent {
public Integer doSomething() {
return 0;
}
}
它在协方差下是完美的,并且编译得很好
何处为
public class Parent {
public Integer doSomething() {
return null;
}
}
class Child extends Parent {
public int doSomething() {
return 0;
}
}
没有编译。但它可以很容易地在自动装箱和取消装箱的情况下进行自我转换,对吗 在第一种情况下,代码编译是因为java支持协方差,这意味着 如果Cat是动物的亚型,则可以在任何可能的情况下使用Cat型表达式 根据这一点,第一种情况是好的 至于第二个案件, 是Java编译器在原语类型与其对应的对象包装器类之间进行的自动转换。例如,将int转换为整数,将double转换为double,等等 它是包装器与其原语之间的直接关系,这并不意味着
int
是Integer
的子类
int ---> Integer //conversion, not subtype
有点类似:@RahulTripathi-Hmm。。我被我先前回答的问题所启发:)。已尝试删除,但我无法删除。将其标记为重复:)