java 如何强制转换
强制类型转换的基本语法
在Java中,强制类型转换通过目标类型的括号实现,语法如下:
目标类型 变量名 = (目标类型) 原变量;
例如将double转为int:

double d = 10.5;
int i = (int) d; // i的值为10(直接截断小数部分)
适用场景与注意事项
1. 基本数据类型转换

- 高精度向低精度转换(如
double→int)需显式强制转换,可能丢失精度。 - 低精度向高精度(如
int→double)会自动隐式转换。
2. 对象类型转换
- 父类与子类之间的转换需满足继承关系,否则抛出
ClassCastException。class Parent {} class Child extends Parent {}
Parent p = new Child(); Child c = (Child) p; // 合法转换
- 建议使用`instanceof`检查类型以避免异常:
```java
if (p instanceof Child) {
Child c = (Child) p;
}
常见问题与风险
- 数据丢失:如
long转int可能溢出。 - 运行时异常:对象类型不匹配时导致
ClassCastException。 - 不可转换类型:如
String与Integer无法直接强制转换,需通过方法(如Integer.parseInt())。
示例代码
// 基本类型转换
float f = 3.14f;
int n = (int) f; // n=3
// 对象类型转换
Object obj = "Hello";
String s = (String) obj; // 合法
强制类型转换需谨慎,确保逻辑安全性和数据完整性。






