java - 为什么我们不能将整数对象转换为字符串对象?

标签 java

为什么我们不能将整数对象转换为字符串对象?请详细说明。

Integer obj = new Integer(10);
System.out.println((String)obj);

这里是否涉及协变返回类型?

最佳答案

您不能将 Integer 转换为 String,因为它们不相关。您只能将引用转换为其父类(super class)之一,即:向上转换,在这种情况下不需要转换运算符,或其子类(向下转换)。

Integer 既不是 String 的子类也不是父类(super class),因此您不能那样做。如果您被允许任意将对象转换为您想要的任何类型,那么为什么还要麻烦拥有类型呢?

所有 Java 对象都有一个 .toString() 方法(继承自 Object),因此您所要做的就是 String s = obj.toString( ), 尽管 System.out.println() 会自动为您调用它。

不,这与协变返回类型没有任何关系。

关于java - 为什么我们不能将整数对象转换为字符串对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7479394/

相关文章:

Java Class.newInstance 错误

java - 递归 - 添加数组的子集

java - 请求/响应对的持久 HTTPUrlConnections 数量

java - ScrollView 不滚动到顶部 - Android

c# - 如何将此 Java 代码移植到 C# 中?

java - Mirth 文件读取器 - Java 堆空间错误

java - GSON 非法状态异常 : Expected BEGIN_OBJECT but was BEGIN_ARRAY

java - servlet 是否共享同一个 servletoutputstream 对象?

Java Mail 无法验证 openshift 服务器中的 smtp 设置

java - JPA @Entity 继承