<分区>
它的理论问题。有人告诉我,类型转换物体不是最好的做法。所以我们使用泛型来避免它。
1.但内部发生了什么?
2.为什么不气馁?
3.Java内部实现在哪里?
请举例说明,并说明过程中涉及的方法/类。
我能覆盖它的默认实现吗? (只是好奇,希望它不是傻的)
<分区>
它的理论问题。有人告诉我,类型转换物体不是最好的做法。所以我们使用泛型来避免它。
1.但内部发生了什么?
2.为什么不气馁?
3.Java内部实现在哪里?
请举例说明,并说明过程中涉及的方法/类。
我能覆盖它的默认实现吗? (只是好奇,希望它不是傻的)
最佳答案
对于原始类型和引用类型,转换的含义略有不同。
对于原始类型,它可用于将一种类型的原始类型转换为另一种类型,例如narrowing primitive conversions。 .
对于引用类型,这意味着您告诉编译器“我有一个类型为 A
的变量,但我希望您跳过常规类型检查并将其视为类型 B
”。转换引用类型不进行任何类型的转换。它绕过了编译器的正常类型检查。类型检查仍将完成,但在运行时而不是编译时。如果对象的类型不正确,您将得到一个 ClassCastException
。
为什么不鼓励:因为它使您的程序的类型安全性降低。类型系统可以帮助您发现错误,而强制转换意味着您故意跳过类型检查,并在运行程序时冒着遇到 ClassCastException
的风险。
内部实现:这只是 Java 编译器所做工作的一部分。您不能覆盖转换的工作方式,这也不是很有用。 (改变强制转换的含义会改变 Java 编程语言的规则)。
关于java - JAVA 中的内部转换是如何工作的?原始和引用转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27855821/