在 Java 中避免 ClassCastException 的策略

本文关键字:ClassCastException 策略 Java | 更新日期: 2023-09-27 18:35:41

在 C# 中,为了避免类转换异常,我会做这样的事情:

事物

事物 = 创建事物();

动物 动物 = 作为动物的东西;

if (animal != null) {

 //do something

}

我想在 Java 中进行运行时检查,如果没有必要,我强烈建议不要抛出 ClassCastException。 在 Java 中,合适的策略是什么?

在 Java 中避免 ClassCastException 的策略

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  
    }  
      }  
相关文章:
  • 没有找到相关文章