Inconvertible types; cannot cast 'int' to 'java.lang.Long'
时间: 2023-06-18 08:01:56 浏览: 373
这个错误是因为你试图将 int 类型转换为 Long 类型,但是这两种类型是不兼容的。在 Java 中,int 和 Long 是两种不同的数据类型,它们有不同的内存布局和取值范围。如果你需要将 int 转换为 Long,可以使用 Long.valueOf(int) 方法或者直接在 int 值后面加上 L 或 l 来表示这是一个 Long 类型的值。例如:
```
int i = 10;
Long l = Long.valueOf(i); // 使用 Long.valueOf 方法进行转换
Long l2 = (long) i; // 使用强制类型转换,注意小写的 l 也可以表示 Long 类型
```
注意,如果你使用强制类型转换将 int 转换为 Long,可能会发生数据溢出的情况,因为 int 的取值范围比 Long 小。因此,建议使用 Long.valueOf 方法进行转换。
相关问题
Inconvertible types; cannot cast 'java.lang.Long' to 'java.lang.String'
这个错误提示意味着你试图将一个Long类型的变量转换为String类型,但是这两种类型是不兼容的,因此无法进行强制类型转换。如果你需要将Long类型的变量转换为String类型,可以使用Long.toString()方法将其转换为字符串类型。例如:
```java
Long l = 123456789L;
String s = Long.toString(l);
System.out.println(s); // 输出:123456789
```
Inconvertible types; cannot cast 'java.lang.Double' to 'int'怎么解决
这个错误是因为你试图将一个Double类型的值转换为int类型,但这两种类型不兼容。要解决这个问题,你可以使用Double类的intValue()方法将Double类型的值转换为int类型。例如:
```
Double d = 3.14;
int i = d.intValue();
```
这将把Double类型的d转换为整数类型的i。如果你只是想将Double类型的值舍弃小数部分并转换为int类型,你可以使用强制类型转换,例如:
```
Double d = 3.14;
int i = (int) d.doubleValue();
```
这将把Double类型的d转换为double类型,并将其强制转换为int类型,舍弃小数部分。
阅读全文