如何从 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" */
}
}
我正在尝试在 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" */
}
}