JAVA 中的内部转换是如何工作的?原始和参考转换
How casting internally works in JAVA? Both Primitive and Reference Casting
它的理论问题。有人告诉我,铸造物体不是最好的做法。所以我们使用泛型来避免它。
1.But 内部发生了什么?
2.Why 气馁了?
3.Where是它在Java中的内部实现。
请举例说明,并提及过程中涉及的方法/类。
我可以覆盖它的默认实现吗? (只是好奇,希望它不是傻子)
转换对于原始类型和引用类型的含义略有不同。
对于原始类型,它可用于将一种类型的原始类型转换为另一种类型,例如 narrowing primitive conversions.
对于引用类型,就是你告诉编译器"I have a variable of some type A
but I want you to skip your normal type checking and treat it as if it is of type B
"。转换引用类型不进行任何类型的转换。它绕过了编译器的正常类型检查。类型检查仍将完成,但在 运行 时而不是在编译时。如果对象类型不正确,您将得到 ClassCastException
.
为什么不鼓励:因为它会使您的程序的类型安全性降低。类型系统可以帮助您发现错误,而转换意味着您故意跳过类型检查,并且在您 运行 您的程序时冒着得到 ClassCastException
的风险。
内部实现:这只是 Java 编译器所做的一部分。您不能覆盖转换的工作方式,这也不是很有用。 (改变转换的含义会改变 Java 编程语言的规则)。
它的理论问题。有人告诉我,铸造物体不是最好的做法。所以我们使用泛型来避免它。
1.But 内部发生了什么?
2.Why 气馁了?
3.Where是它在Java中的内部实现。
请举例说明,并提及过程中涉及的方法/类。
我可以覆盖它的默认实现吗? (只是好奇,希望它不是傻子)
转换对于原始类型和引用类型的含义略有不同。
对于原始类型,它可用于将一种类型的原始类型转换为另一种类型,例如 narrowing primitive conversions.
对于引用类型,就是你告诉编译器"I have a variable of some type A
but I want you to skip your normal type checking and treat it as if it is of type B
"。转换引用类型不进行任何类型的转换。它绕过了编译器的正常类型检查。类型检查仍将完成,但在 运行 时而不是在编译时。如果对象类型不正确,您将得到 ClassCastException
.
为什么不鼓励:因为它会使您的程序的类型安全性降低。类型系统可以帮助您发现错误,而转换意味着您故意跳过类型检查,并且在您 运行 您的程序时冒着得到 ClassCastException
的风险。
内部实现:这只是 Java 编译器所做的一部分。您不能覆盖转换的工作方式,这也不是很有用。 (改变转换的含义会改变 Java 编程语言的规则)。