java – 直接跟随@SuppressWarnings的Eclipse错误(“unchecked”)

我似乎遇到了一些问题,这个问题可以抑制我从文件中反序列化包含MyObject类型的ArrayList的警告.我得到的错误信息来自该行

objects = (ArrayList<MyObject>) ois.readobject();

它写道:

Type safety: Unchecked cast from Object to ArrayList<MyObject>

在我将@SuppressWarnings(“unchecked”)应用于特定警告后,它表示我的对象对象无法解析为某种类型.

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”)应用于整个方法,那么错误就会消失.此外,它发生在多台机器上,而不仅仅是在一台机器上.

当我只抑制错误一个实例时,是否有人对正在发生的事情有任何见解使得此错误出现?

解决方法:

@SupressWarnings(“unchecked”)只能应用于对象的声明,这将起作用:

@SuppressWarnings("unchecked")
ArrayList<String> objects = (ArrayList<String>) ois.readobject();

……但可能无法解决您的问题.其原因可以在JDK源代码中找到. @SupressWarnings注释上的@Target注释定义了允许的位置:

@Target({TYPE, FIELD, METHOD, ParaMETER, CONSTRUCTOR, LOCAL_VARIABLE})

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...