java - 字符串到对象类型转换 - 区别

标签 java string casting downcast upcasting

有什么区别。

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/

相关文章:

Java 字符串连接和 System.out.println 不起作用

c++ - 将 boost std::string::const_iterator 转换为 string 和 int c++

c# - 如何在 .NET 中将源自类型 A 的对象转换为类型 B?

java - 使用 stringtokenizer 返回字符串的其余部分

java - 多个按钮,每个按钮选择不同的 Activity

java - 字符串等价

java - 如何转换为 PostgreSQL 数字类型?

java - Camunda BPM 引擎中的 Thrift 调用

java - 如何编写 Java JIT 优化友好的代码?

python - 将具有日期时间值的字典的字符串表示形式转换回字典