什么车辆其他=(车辆)obj;做?

时间:2014-01-19 16:29:22

标签: java

我对Vehicle other = (Vehicle)obj;的所作所为感到困惑。它是否会创建变量other并将obj复制到其中?

@Override
public boolean equals (Object obj) {
    if (this == obj) return true;
    if (!(obj instanceof Vehicle)) return false; 

    Vehicle other = (Vehicle)obj;
    return ( type.equals(other.type) 
            && size == other.size
            && uitstoot == other.uitstoot
           );
}

3 个答案:

答案 0 :(得分:2)

首先,检查objVehicle

的实例

if (!(obj instanceof Vehicle)) return false;

如果是,那么它被转换为Vehicle类 - 即从那时起,它将被解释为Vehicle实例

Vehicle other = (Vehicle)obj;

答案 1 :(得分:0)

它做了两件事。它将other声明为Vehicle引用,并将其初始化为指向obj引用的对象的指针。强制转换永远不会导致运行时异常,因为该对象已被确定为Vehicle

答案 2 :(得分:0)

我认为你是对的。

首先它将Object obj转换为Vehicle类(我们已经检查过obj可以转换为Vehicle类,否则代码无法转到此处)

其次将副本提供给另一个变量以保护原始数据。