Java中避免ClassCastException的策略
在C#中,为了避免类强制转换异常,我将执行以下操作: Thing=createThing() 动物=作为动物的事物 if(动物!=null){ }Java中避免ClassCastException的策略,java,c#,Java,C#,在C#中,为了避免类强制转换异常,我将执行以下操作: Thing=createThing() 动物=作为动物的事物 if(动物!=null){ } 我想在Java中进行运行时检查,如果不需要的话,我强烈希望不要抛出ClassCastException。在Java中,什么是合适的策略?您可以在Java中使用intanceOf操作符。instanceof运算符将对象与指定类型进行比较。这里的详细信息:在Java中使用instanceof操作符 java instanceof操作符用于测试对象是否是指
我想在Java中进行运行时检查,如果不需要的话,我强烈希望不要抛出ClassCastException。在Java中,什么是合适的策略?您可以在Java中使用
intanceOf
操作符。instanceof运算符将对象与指定类型进行比较。这里的详细信息:在Java中使用instanceof
操作符
java instanceof操作符用于测试对象是否是指定类型(类、子类或接口)的实例。
instanceof
是C#的is
的Java等价物。没有直接等同于的;检查后,你必须做向下广播
if (thing instanceof Animal) {
Animal animal = (Animal)thing;
...
}
或者,如果如果强制转换失败,您真的希望变量为null
,请尝试
Animal animal = (thing instanceof Animal) ? (Animal)thing : null;
+(2-1)或
isassinablefrom()
,用于指出as运算符也执行强制转换操作
if (thing instanceof Animal) {
Animal animal = (Animal)thing;
...
}
Animal animal = (thing instanceof Animal) ? (Animal)thing : null;