我仅限于在Java中使用遗留集合。我创建了一个哈希表
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)
我做错了什么?为什么在哈希表中存储数组与存储其他对象不同?我一直在寻找解释,但关于在哈希表中存储数组的信息很少。
编辑:我正在使用Java ME。也许这会导致一些意想不到的行为。。
仅用于演示。这段代码:
Hashtable dataStock = new Hashtable();
dataStock.put("someArray", new Float[24]);
Float[] anotherArray = (Float[]) dataStock.get("someArray");
工作良好。这意味着,在代码的某个地方,您使用键someArray
将其他类型不同于Float[]
的值放入dataStock
中。