![](/img/trans.png)
[英]Java Swing - How to create utils classes on Swing components with generics
[英]Java 7 Generics on Swing components
我有一个类,它扩展了Swing组件,如:
public class MyCustomClass extends JComboBox
这里的问题是我得到编译器警告:
JComboBox是原始类型。 应参数化对泛型类型JComboBox的引用
我不确定参数化JComboBox,以便从这里进一步扩展的任何类都可以使用任何类型的对象。 我试图把它作为扩展JComboBox,等等,但这不起作用。 任何建议,将不胜感激。
如果对JComboBox的类型参数没有限制,那么你可以使用:
public class MyCustomClass<T> extends JComboBox<T>
如果我正确记住了语法。
泛型会影响预期在模型中的数据类型。 从长远来看,这是一个很好的功能,但可能意味着一些短期的痛苦。
你有两个我能想到的选择。
首先,构建自定义类,以便允许泛型通过......
public class MyCustomClass<E> extends JComboBox<E>
其次,传递一个Object
作为组合框的数据类型
public class MyCustomClass extends JComboBox<Object>
(或者,第三,将自定义组合框约束为预定义的数据类型,以实现其构建目的)
该参数是ComboBox中所需的对象类型。
你的选择是:
答: MyCustomClass
总是期望相同类型的对象,所以你做的事情如下:
public class MyCustomClass extends JComboBox<String>
要么
B: MyCustomClass
在树下仍然“不够深”,无法知道它将使用的类的类型。 所以你也是:
public class MyCustomClass<T> extends JComboBox<T>
JComboBox
成为Java 7中的泛型类,例如,您应该告诉编译器JComboBox
实例中的对象类型。 所以你可以让你的类通用,或者指定JComboBox
的类型。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.