繁体   English   中英

如何从 double 转换为 object?

[英]How can I cast from double to object?

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

练习说:鉴于图 class 计算了 String 颜色属性、String nom 和 double area() 方法,equals 方法定义如下:在方法中捕获和处理,因为它的行为与 Object class 中定义的相等。

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 function 中,只有当你确定它是一个有效的Figura object 时,你才应该使用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" */
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM