在 Java 中避免 ClassCastException 的策略
本文关键字:ClassCastException 策略 Java | 更新日期: 2023-09-27 18:35:41
在 C# 中,为了避免类转换异常,我会做这样的事情:
事物事物 = 创建事物();
动物 动物 = 作为动物的东西;
if (animal != null) {
//do something
}
我想在 Java 中进行运行时检查,如果没有必要,我强烈建议不要抛出 ClassCastException。 在 Java 中,合适的策略是什么?
instanceof
是C#的is
的Java等价物。 没有直接等同于as
;检查后,您必须进行向下检查。
if (thing instanceof Animal) {
Animal animal = (Animal)thing;
...
}
或者,如果您确实想要一个null
转换失败的变量,请尝试
Animal animal = (thing instanceof Animal) ? (Animal)thing : null;
您可以在 Java 中使用intanceOf
运算符。实例运算符将对象与指定类型进行比较。在此处关注更多内容: http://docs.oracle.com/javase/tutorial/java/nutsandbolts/op2.html
在 Java 中使用 instanceof
运算符
The java instanceof operator is used to test whether the object is an instance of the specified type (class or subclass or interface).
class Shape{}
class Round extends Shape{ //Round inherits Shape
public static void main(String args[]){
Round round=new Round();
System.out.println(round instanceof Shape); //true
}
}