首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >解决Eclipse警告“is the parameterized”的正确方法是什么?

解决Eclipse警告“is the parameterized”的正确方法是什么?
EN

Stack Overflow用户
提问于 2010-03-24 01:49:54
回答 3查看 494关注 0票数 5

我正在尝试清除一些旧Java代码(在Eclipse中)中的一些警告,我不确定在这种情况下应该做什么。该块看起来大致如下所示:

代码语言:javascript
复制
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>。我只能抑制函数的未检查警告,但如果有一个“好”的解决方案,我更愿意避免这种情况。有什么想法?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-03-24 02:08:51

我建议显式地将结果强制转换为List<File>,并取消警告。根据the documentation的说法

public static final DataFlavor javaFileListFlavor

为了在Java (和底层平台)之间传输文件列表,需要使用这种类型/子类型和表示类java.util.List的DataFlavor。列表中的每个元素都必须是/保证是java.io.File类型。

在文档中明确定义了数据类型的这种情况下,可以随意忽略警告,如Joshua Bloch的Effective Java (第116页)的第24项所示:

如果您不能消除警告,并且可以证明引发警告的代码是类型安全的,那么(也只有在那时)使用@SuppressWarnings("unchecked")注释取消警告。

票数 6
EN

Stack Overflow用户

发布于 2010-03-24 01:53:52

尝尝这个

代码语言:javascript
复制
java.util.List<?>
票数 4
EN

Stack Overflow用户

发布于 2010-03-24 01:57:44

我不认为你需要使用<?>。这对我来说很好吗?

代码语言:javascript
复制
Object obj = null;
List<File> aa = (List<File>)obj;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2502306

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档