内部投射如何在JAVA中运作?原始和参考铸造

时间:2015-01-09 07:32:00

标签: java casting

其理论问题。我被告知铸造物体不是最好的。所以我们使用泛型来避免它。

1.但内部会发生什么?  为什么沮丧?  3.在Java中内部实现它。

请解释一个例子,并提及涉及该过程的方法/类。

我是否可以覆盖其默认实施? (只是好奇,希望它不傻)

1 个答案:

答案 0 :(得分:5)

对于基本类型和引用类型,转换意味着略有不同。

对于基本类型,它可用于将一种类型的基元转换为另一种类型,例如narrowing primitive conversions

对于引用类型,这意味着你告诉编译器"我有一个类型为A的变量,但我希望你跳过正常的类型检查并将其视为类型{ {1}}&#34 ;.转换引用类型不进行任何类型的转换。它绕过了编译器的正常类型检查。类型检查仍将完成,但是在运行时而不是在编译时。如果对象的类型不正确,您将获得B

为什么不鼓励:因为它会降低您的程序的类型安全性。类型系统可以帮助您捕获错误,而转换意味着您故意跳过类型检查,并且在运行程序时冒险获得ClassCastException

内部实现:这只是Java编译器的一部分。你无法覆盖强制转换的工作方式,这也不是很有用。 (更改强制转换的含义会改变Java编程语言的规则)。