gpt4 book ai didi

java - 解决 Eclipse 警告 "isn' t 参数化的正确方法是什么?

转载 作者:搜寻专家 更新时间:2023-10-31 19:31:28 24 4
gpt4 key购买 nike

我正在尝试清除某些旧 Java 代码(在 Eclipse 中)中的一些警告,但我不确定在这种情况下该怎么做才是正确的。该 block 看起来或多或少像这样:

Transferable content = getToolkit().getSystemClipboard().getContents( null );
java.util.List clipboardFileList = null;

if( content.isDataFlavorSupported( DataFlavor.javaFileListFlavor ) ) {
try {
clipboardFileList = (java.util.List)content.getTransferData(
DataFlavor.javaFileListFlavor);
}
/* Do other crap, etc. */
}

List 生成警告,因为它没有参数化,但是,如果我用 <File> 参数化它,我很确定这是它所需要的,它提示它无法从 Object 转换至 List<File> .我只能抑制该功能的未经检查的警告,但如果有一个“好的”解决方案,我宁愿避免这种情况。想法?

最佳答案

我建议将结果显式转换为 List<File>并抑制警告。根据the documentation :

public static final DataFlavor javaFileListFlavor

To transfer a list of files to/from Java (and the underlying platform) a DataFlavor of this type/subtype and representation class of java.util.List is used. Each element of the list is required/guaranteed to be of type java.io.File.

在文档明确定义数据类型的情况下,请随意忽略警告,按照 Joshua Bloch 的 Effective Java 的第 24 项。 (第 116 页):

If you can't eliminate a warning, and you can prove that the code that provoked the warning is typesafe, then (and only then) suppress the warning with an @SuppressWarnings("unchecked") annotation.

关于java - 解决 Eclipse 警告 "isn' t 参数化的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2502306/

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