unchecked cast warning - how to avoid this?
本问题已经有最佳答案,请猛点这里访问。
我在readObject()的行中收到"type safety:unchecked cast from object to arraylist"警告,在以下代码段中:
1 2 3 4 5 6 7 8 9 10 | // Read the Event List theEventArrayList = new ArrayList<Event>(); String FILENAME ="EventData.dat"; FileInputStream fis; try { fis = openFileInput(FILENAME); ObjectInputStream ois = new ObjectInputStream(fis); theEventArrayList = (ArrayList<Event>) ois.readObject(); fis.close(); } |
压制它。您唯一的另一种选择是强制转换为arraylist,但是在代码中的其他地方,您必须处理非类型化的arraylist并强制转换为read。在这种情况下压制是无害的。
好吧,编译器是正确的——谁说你正在读取的对象实际上是一个数组列表?我可以很容易地用完全不同的东西替换文件,您会得到一个例外。
应该工作。是的,你仍然会得到一个警告,因为它是泛型的,但是那是Java的通用系统,摆脱它意味着创建一个新的对象并在一个时间添加一个事件——但是,我们必须将对象投射到事件和…啊,不是更好,只是活在一般的警告。
老了,但我同样的"谷歌来了"回应。
如果您想避免它,并且不受CPU或RAM限制的限制,可以尝试collections.copy。