无法从哈希表中检索Float数组

时间:2013-07-18 12:48:12

标签: java arrays hashtable

我仅限于在Java中使用旧版集合。 我创建了一个Hashtable

private Hashtable dataStock = new Hashtable();

此哈希表的一个条目是Float数组

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)

我做错了什么?为什么将数组存储在Hashtable中与存储其他对象不同?我正在寻找一个解释,但是关于在哈希表中存储数组的信息很少。

编辑:我正在使用Java ME。也许这会导致一些意想不到的行为。

1 个答案:

答案 0 :(得分:3)

仅供演示。这段代码:

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

运作良好。这意味着,在您的代码中的某个位置,您使用键dataStocksomeArray的其他值放入Float[],其类型与{{1}}不同。