我想打开一个配置屏幕,并发送回其数据时,用户点击确定。
我将这些对象作为配置
configObjA a;
configObjB b;
两者都实现了IDisplayable (我的接口)。现在,congfig屏幕获得两个ArrayLists,并将它们放入JLists gui中。它对JList进行迭代并将其放入数据模型中。
当我从屏幕返回时,我希望将结果发送到主屏幕。因此,我重新迭代数据模型,并将其放回数组列表中
问题是主屏幕不知道什么,我的配置屏幕有没有办法返回主屏幕知道的类型?
我想返回公共列表getOptionsList(),在这个方法中,我将创建一个我发送的类型的列表。(然后我必须保留我发送的类型)。这有什么好处吗?当类型为未知时,如何创建泛型列表
对象类型?有什么建议吗?
顺便说一句:对于这个简单的需求,我愚蠢的gui过程是不是太复杂了?
发布于 2011-04-07 15:15:34
当类型为未知对象类型时,如何创建泛型列表?
你不能。泛型列表的全部意义在于,您确实知道编译时的对象类型,以便编译器可以检查您对该列表的使用情况。
如果您至少知道一个父类或接口(实际上这是通常的情况),则可以使用它:
List<IDisplayable> l;
如果它可以是任何类型的对象,你只能说
List<Object> l;
它可以接受任何类型的对象,但消除了有意义的编译时类型检查的可能性。
发布于 2011-04-07 20:27:19
您可以创建未知类型的泛型列表,但不能真正将对象放入其中。
public <T> List<T> makeList() {
return new ArrayList<T>();
}
当然,使用此方法的方法必须知道类型,并且只能将此类型的对象放入。
在您的例子中,问题似乎在于您希望将JList误用为数据容器。它不是,它是一个视图组件。为您的逻辑使用真实的数据结构,并将其包装在ListModel中,为您的列表提供要显示的数据。
https://stackoverflow.com/questions/5577253
复制相似问题