【问题标题】:JTable getColumnClass warningJTable getColumnClass 警告
【发布时间】:2023-03-22 10:45:01
【问题描述】:

我试过搜索,但似乎没有人知道答案。

我使用 JTable 来列出一个包含人员的表格,并且我想放置一个 ImageIcon,因此从我所读到的内容中,我必须覆盖默认方法才能返回一个图标而不是字符串。

这是我用的:

public Class getColumnClass(int column)   
{   
    return getValueAt(0, column).getClass();   
}

但是 eclipse 用黄色强调了返回类型“Class”并给了我这个警告:

类型安全:getColumnClass(int) 的返回类型 Class 来自 type new JTable(){} 需要未经检查的转换以符合 Class 从类型 JTable

它唯一的建议就是压制它。我不确定我是否正确收到警告,有人可以尝试向我解释它的确切含义并帮助我找到一个不会抑制它的好解决方案吗?

【问题讨论】:

  • 如果将返回类型改为Class<?>会怎样?
  • 您永远不应该依赖列值来确定类类型。如果值为null 或者您没有行会发生什么?相反,您应该返回一个具体的类类型(即String.classDate.class 等)。每列应该只代表一个类类型

标签: java swing jtable


【解决方案1】:

Class 的返回类型是raw type,它会产生编译器警告。您需要在返回类型中添加通用通配符以消除此警告:

public Class<?> getColumnClass(int column)

见:Generic Wildcards

【讨论】:

  • 所以基本上?是通配符吗?你能告诉我我应该搜索什么来阅读这个,因为我完全不知道吗?也感谢您的解决方案。
  • 它不等同于 Class。类 是 Object.class。类> 是 SomeUnknownClass.class。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-08
  • 2014-06-15
  • 2017-05-31
  • 1970-01-01
  • 1970-01-01
  • 2011-12-28
相关资源
最近更新 更多