Java 无法从哈希表中检索浮点数组

Java 无法从哈希表中检索浮点数组,java,arrays,hashtable,Java,Arrays,Hashtable,我仅限于在Java中使用遗留集合。 我创建了一个哈希表 private Hashtable dataStock = new Hashtable(); 这个哈希表的一个条目是浮点数组 dataStock.put("someArray", new Float[24]); 当我想从哈希表中检索此条目时,如下所示: Float[] anotherArray = (Float[]) dataStock.get("someArray"); 我得到以下强制转换异常: Exception in threa

我仅限于在Java中使用遗留集合。 我创建了一个哈希表

private Hashtable dataStock = new Hashtable();
这个哈希表的一个条目是浮点数组

dataStock.put("someArray", new Float[24]);
当我想从哈希表中检索此条目时,如下所示:

Float[] anotherArray = (Float[]) dataStock.get("someArray");
我得到以下强制转换异常:

Exception in thread "main" java.lang.ClassCastException
at java.lang.Throwable.fillInStackTrace(<unknown source file>:130)
at java.lang.Throwable.<init>(<unknown source file>:51)
at java.lang.Exception.<init>(<unknown source file>:13)
at java.lang.RuntimeException.<init>(<unknown source file>:18)
at java.lang.ClassCastException.<init>(<unknown source file>:17)
at fr.ecosense.business.FlashMemory.restoreStockData(FlashMemory.java:297)
线程“main”java.lang.ClassCastException中的异常 在java.lang.Throwable.fillInStackTrace(:130) 在java.lang.Throwable上。(:51) 在java.lang.Exception中(:13) 在java.lang.RuntimeException中。(:18) 在java.lang.ClassCastException中。(:17) 位于fr.ecosense.business.FlashMemory.restoreStockData(FlashMemory.java:297) 我做错了什么?为什么在哈希表中存储数组不同于存储其他对象?我正在寻找解释,但是关于在哈希表中存储数组的信息很少


编辑:我正在使用javame。可能这会导致一些意外行为。

只是为了演示一下。这段代码:

    Hashtable dataStock = new Hashtable();
    dataStock.put("someArray", new Float[24]);
    Float[] anotherArray = (Float[]) dataStock.get("someArray");

效果很好。这意味着,在代码中的某个地方,您使用键
someArray
将一些其他值放入
dataStock
中,该值的类型与
Float[]
不同,仅用于演示。这段代码:

    Hashtable dataStock = new Hashtable();
    dataStock.put("someArray", new Float[24]);
    Float[] anotherArray = (Float[]) dataStock.get("someArray");

效果很好。这意味着,在代码中的某个地方,您使用键
someArray
将另一个值放入
dataStock
中,该值的类型与
Float[]

不同,您所做的一切都是正确的。您收到的异常是由于其他原因造成的。您所做的一切都是正确的。您收到的异常是由于其他原因产生的。实际上,我在某个地方放置了另一个数组,该数组具有相同的键,类型为float[],而不是float[]。谢谢实际上,我在某个地方放置了另一个具有相同键的数组,该键的类型为float[],而不是float[]。谢谢