java - 为什么要转换一个已经被标识为特定类的对象?

标签 java

在下面的代码中,假设方法equals属于类Rectangle,我想知道为什么需要对参数object进行强制转换> 当 if 条件已确定 object 是矩形时,作为矩形。

public boolean equals(Object object)
{
   boolean equal;
   if (object != null && this.getClass() ==
      object.getClass())
   {
      Rectangle other = (Rectangle) object;
      equal = (this.width == other.width) &&
         (this.height == other.height);
   }
   else
   {
      equal = false;
   }
   return equal;
}

最佳答案

编译器不知道这个对象有一个名为width的字段。但是other 一个矩形 - 因此编译器知道会有一个宽度和一个高度分别为 字段。

我建议您不要进行强制转换,直接使用对象并查看收到的错误。

关于java - 为什么要转换一个已经被标识为特定类的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37303425/

相关文章:

java - Java 中的 C++ 样式多态输出

java - 如何使用 muleClient.request 从 Java 实现异步 AMQP-RabbitMQ?

java - 将提供的依赖关系传播到依赖项目

java - 将 MYSQL 日期时间值转换为 UTC 时区格式 yyyy-MM-dd'T'HH :mm:ss'Z'

java - 如何打开与 View 中的错误相关的文件

java - false 和 Boolean.FALSE 有什么区别?

java - 我想打开一个文件以在构造函数中读取。该文件应该可以用任何方法读取,而无需创建另一个读取器对象

JavaFx AnimationTimer - 我从不停止我的计时器(问题?)

java - 在 Google App Engine 上从 Java 7 迁移到 Java 8 时出现内存错误/500 错误

java - 创建数组的数组列表