取决于您所说的类型转换。有“投降”不花钱,有“降投”又花钱。第二个答案也从“取决于”开始。通常,我避免在代码中进行向下转换,因为从我的经验来看,如果代码中过度使用它,则意味着设计很糟糕。另一方面,这不一定意味着完全不应该使用它。
铸造特别是引用类型之间,在其中我们在这里感兴趣铸造操作的类型-是用来转换类型之间。
上位操作(在Java语言规范中也称为扩展转换)将子类引用转换为祖先类引用。这种转换操作通常是自动的,因为它总是安全的,并且可以由编译器直接实现。
向下转换操作(在Java语言规范中也称为缩小转换)将祖先类引用转换为子类引用。由于Java要求在运行时检查强制转换以确保其有效,因此此强制转换操作会产生执行开销。如果引用的对象不是强制转换的目标类型的实例或该类型的子类的实例,则不允许尝试进行强制转换,并且必须抛出java.lang.ClassCastException。
| 归档时间: |
|
| 查看次数: |
3904 次 |
| 最近记录: |