如何从 double 转换为 object?

How can I cast from double to object?

我正在尝试在 double 和 Figura 之间施放第四个 equals 槽 class 但我不知道如何解决。 我正在尝试在双人和 Figura 之间施放第四次等于低谷施法 class,但我不知道该怎么做。

练习说: 鉴于Figura class统计了String颜色属性,String nom和double area()方法,equals方法已经定义如下: 修改 equals 方法,这样如果产生了未经检查的 ClassCastException,它仍然会在该方法中被捕获和处理,因为它的行为与 Object class.

中定义的 equals 一致
package ejer2;

public class Main {

    public static void main(String[] args) {
        Figura f1 = new Figura("roig","quadrat");
        Figura f2 = new Figura("roig","quadrat");
        Double d = new Double(1.0);
        String k = "Hola";
        boolean b1 = f1.equals(f2);
        boolean b2 = d.equals(k);
        boolean b3 = k.equals(f2);
        boolean b4 = f1.equals(d);

    }

}
package ejer2;

public class Figura {
    
String color;
String nom;

    public Figura(String color, String nom) {
        this.color=color;
        this.nom=nom;
    }

    public double area() {
        return 0;
    }
    
    public boolean equals (Object o) {
        Figura f =(Figura) o;
        try {

        return this.color.equals(f.color) && this.nom.equals(f.nom)&& this.area() == f.area(); 
        }
        
        catch(ClassCastException ex) {
            
            return this.color.equals(f.color) && this.nom.equals(f.nom); 
            
        }
    }
}

Java 中的每个 class 都派生自 Object class,这包括 Double,因此您根本不需要转换它。在你的 equals 函数中,你应该只在你确定它是一个有效的 Figura 对象后使用 instanceof

public boolean equals (Object o) {
    if(!o instanceof Figura) {
       return false;
    }
    //now we can safely cast because we know it must be a Figura object
    Figura f = (Figura) o;
}

在 Java 14(预览版)及更高版本中,您还可以使用 智能转换

public boolean equals (Object object) {
    if(object instanceof Figura o) {
       /* object is now guaranteed to be 
of type Figura and we have a new reference to the automatically casted object "o" */
    }
}