首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Swing组件的Java 7泛型

Swing组件的Java 7泛型
EN

Stack Overflow用户
提问于 2012-10-05 00:37:25
回答 4查看 1.7K关注 0票数 3

我有一个类,它扩展了Swing组件,例如:

代码语言:javascript
复制
public class MyCustomClass extends JComboBox

这里的问题是,我得到编译器警告:

JComboBox是原始类型。对泛型类型JComboBox的引用应该是参数化的

我不确定将JComboBox参数化,这样以后任何类都可以使用任何类型的对象。我试着把它作为扩展JComboBox,等等,但这是行不通的。如有任何建议,将不胜感激。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-10-05 00:42:13

如果对JComboBox的类型参数没有任何限制,那么您可以使用:

代码语言:javascript
复制
public class MyCustomClass<T> extends JComboBox<T>

如果我没记错语法。

票数 6
EN

Stack Overflow用户

发布于 2012-10-05 00:45:26

泛型会影响模型中数据的类型。这是一个整洁的特点,从长远来看,但可能意味着一些短期的痛苦。

你有两个我能想到的选择。

首先,构造自定义类,以便允许泛型通过.

代码语言:javascript
复制
public class MyCustomClass<E> extends JComboBox<E>

其次,传递一个Object作为组合框的数据类型。

代码语言:javascript
复制
public class MyCustomClass extends JComboBox<Object>

(或者第三,将自定义组合框限制为预定义的数据类型,以实现其生成的目的)

票数 4
EN

Stack Overflow用户

发布于 2012-10-05 00:42:42

该参数是ComboBox中所需对象的类型。

你们的选择是:

A: MyCustomClass总是期望相同类型的对象,所以您可以执行如下操作:

代码语言:javascript
复制
public class MyCustomClass extends JComboBox<String>

B: MyCustomClass在树下仍然“不够深”,无法知道它将处理的类的类型。所以你做了:

代码语言:javascript
复制
public class MyCustomClass<T> extends JComboBox<T>
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12737964

复制
相关文章

相似问题

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