[英]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.