Cannot construct instance of `java.lang.Long[]`: no String-argument constructor/factory method to deserialize from String value ('1,2')
时间: 2024-04-15 07:22:03 浏览: 224
在Java中,无法直接通过字符串来构造一个`java.lang.Long[]`数组对象。这是因为`java.lang.Long`类没有提供接受字符串参数的构造函数或工厂方法来从字符串值中反序列化。
如果你有一个字符串`"1,2"`,并且想要将其转换为`java.lang.Long[]`数组,你需要进行一些额外的步骤。你可以按照以下方式进行操作:
1. 首先,将字符串拆分为多个子字符串,使用逗号作为分隔符。在这个例子中,你可以使用`split()`方法将字符串`"1,2"`拆分为`["1", "2"]`。
2. 然后,创建一个新的`java.lang.Long[]`数组,并根据拆分后的子字符串的数量来确定数组的长度。
3. 接下来,使用循环遍历拆分后的子字符串数组,并将每个子字符串转换为`java.lang.Long`对象。你可以使用`Long.parseLong()`方法将字符串转换为`Long`类型。
4. 最后,将转换后的`Long`对象存储到新创建的数组中。
下面是一个示例代码,演示了如何将字符串`"1,2"`转换为`java.lang.Long[]`数组:
```java
String str = "1,2";
String[] strArray = str.split(",");
Long[] longArray = new Long[strArray.length];
for (int i = 0; i < strArray.length; i++) {
longArray[i] = Long.parseLong(strArray[i]);
}
// 现在,longArray就是包含了Long类型的数组,其中的元素为[1, 2]
```
阅读全文