gpt4 book ai didi

java - 直接跟随@SuppressWarnings ("unchecked"的 Eclipse 错误)

转载 作者:太空宇宙 更新时间:2023-11-03 12:41:32 24 4
gpt4 key购买 nike

我似乎遇到了某种问题,无法抑制从文件中反序列化包含 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})

关于java - 直接跟随@SuppressWarnings ("unchecked"的 Eclipse 错误),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7184780/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com