直接在@SuppressWarnings之后出现java Eclipse错误(“未选中”)
我似乎在抑制从文件中反序列化包含MyObject类型的ArrayList时得到的警告时遇到了某种问题。我收到的错误消息来自于线路
objects = (ArrayList<MyObject>) ois.readObject();
内容如下:
Type safety: Unchecked cast from Object to ArrayList<MyObject>
在我将@SuppressWarnings(“未选中”)应用于特定警告之后,它表示我的对象无法解析为类型
ArrayList<MyObject> objects;
try {
FileInputStream fis = new FileInputStream(new File("myfile.txt"));
ObjectInputStream ois = new ObjectInputStream(fis);
@SuppressWarnings("unchecked")
objects = (ArrayList<MyObject>) ois.readObject(); //Getting 'objects cannot be resolved to a type'
fis.close();
}
catch (Exception e) {
objects = new ArrayList<MyObject>();
}
这很奇怪,因为如果我对整个方法应用@SuppressWarnings(“unchecked”),错误就会消失。此外,它在多台机器上发生,而不仅仅是在一个设置上
当我仅抑制错误的一个实例时,是否有人了解导致此错误出现的原因
# 1 楼答案
@SupressWarnings("unchecked")
只能应用于对象的去极化,这将起作用:。。。但可能解决不了你的问题。原因可以在JDK源代码中找到。
@SupressWarnings
批注上的@Target
批注定义了允许的位置: