强制类型转换问题

Posted 龘驫

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了强制类型转换问题相关的知识,希望对你有一定的参考价值。

今天看spring源码看到这样一段:

查看ConfigurableListableBeanFactory和BeanDefinitionRegistry类结构图:

八竿子打不着的两个接口,但是可以强制转换,而且连警告都没有。

但是还有这么一个类:

经测试发现,如果两个不想关的类,直接强制转换,会报错,因为编译器可以知道这两个肯定是不能互相转换的。

但是两个接口,编译器不会报错,为什么呢?因为实现类可能会同时实现两个接口,那么就可以转换了。但是如果实现类确实没有两个接口都实现,那么运行时是会报错的。

正如java泛型机制,其中一个好处将运行时错误提前到编译时发现,而这个只能在运行时报错,总感觉哪儿有点不对!

以上是关于强制类型转换问题的主要内容,如果未能解决你的问题,请参考以下文章

Java中的强制类型转换是如何转换的?

Java中的强制类型转换是如何转换的?

C语言强制类型转换

怎样让vs2013不进行强制类型转换

Python 强制类型转换

怎么把Map类型强制转换成List类型??