之间有什么区别。

public class Test {

    public static void main(String args[]) {
        String toBeCast = "cast this string";
        A a = toBeCast; // error - Type mismatch: cannot convert from String to A
        Object object = toBeCast;
    }
}


public class A {

}


当我们说每个对象都扩展了Object class时,为什么不允许使用A a = toBeCast;,但是此Object object = toBeCast;可以正常工作。

最佳答案

记住几何学课上的一句老话:“每个正方形都是一个矩形,但不是每个矩形都是一个正方形”。概括为:“每个正方形/平行四边形/菱形都是多边形,但不是每个多边形都是正方形/平行四边形/菱形”。

这是您正在做的事情:

String toBeCast = "cast this string" //this rhombus is a rhombus: cool!
A a = toBeCast; //this parallelogram is that rhombus : WTF? that doesn't make sense!
Object object = toBeCast; //this polygon is that rhombus: cool!

关于java - 字符串到对象类型转换-差异,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27052943/

10-10 14:24