gpt4 book ai didi

java - 使用对象进行类型转换

转载 作者:塔克拉玛干 更新时间:2023-11-01 23:09:18 26 4
gpt4 key购买 nike

我正在尝试将两个对象转换为整数,将它们相加,然后将它们转换回对象并将它们存储在对象数组中。但是,当我尝试将对象添加回数组时,出现数组存储异常。

Scanner scanner = new Scanner(System.in);
String str = scanner.nextLine();
str = str.replaceAll("[^0-9]+", " ");
Object[] numbersArray = Arrays.asList(str.trim().split(" ")).toArray();
str = scanner.nextLine();
str = str.replaceAll("[^0-9]+", " ");
Object[] translateArray = Arrays.asList(str.trim().split(" ")).toArray();

for (int i = 0; i < numbersArray.length; i+=2) {
Object x = (Object) (Integer.parseInt(numbersArray[i].toString())
+ Integer.parseInt(translateArray[0].toString()));
Object y = (Object) (Integer.parseInt(numbersArray[(i+1)].toString())
+ Integer.parseInt(translateArray[1].toString()));

System.out.println(x.getClass().getName()); //how is this an integer???
System.out.println(y); //values get added correctly...
numbersArray[i] = (Object) x;
numbersArray[i+1] = (Object) y;
}

正如您可能看到的那样,我试图尽可能地转换 Object 类型,但 numbersArray 拒绝接受它。我认为我的问题与对象 x 和 y 的赋值语句有关。为什么它们仍然以整数形式出现?

最佳答案

numbersArray真的是String[] .这是因为 String.split()返回 String[]Arrays.asList(array).toArray()只需调用 clone() 即可工作在包裹的阵列上。

因此,当您尝试存储 IntegerString[]你得到一个ArrayStoreException .

如果你想得到一个真实的Object[]你可以做到

List<String> list = Arrays.asList(str.trim().split(" "));
Object[] numbersArray = list.toArray(new Object[list.size()]);

但是,我会考虑更改您的设计。使用Object[]先到店String s 然后 Integer s 很可能会导致困惑和错误。

关于java - 使用对象进行类型转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33618945/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com