在Java/JavaFX中实现可以保存多种数据类型的通用列表
我需要开发一个包含多种库类型的库的列表。例如,该库可以是视频库,也可以是照片库。如果相关的话,我想使用JavaFX遵循MVC设计模式。关于我的问题,请参见下面的UML图: 图1 所以我想我应该在我的库模型中为列表使用一个泛型类型,如下所示:在Java/JavaFX中实现可以保存多种数据类型的通用列表,java,list,model-view-controller,javafx,uml,Java,List,Model View Controller,Javafx,Uml,我需要开发一个包含多种库类型的库的列表。例如,该库可以是视频库,也可以是照片库。如果相关的话,我想使用JavaFX遵循MVC设计模式。关于我的问题,请参见下面的UML图: 图1 所以我想我应该在我的库模型中为列表使用一个泛型类型,如下所示: public class LibraryModel<T> { private List<T> aList; } 照片库方法: displaySlideShow() playVideo() 视频库方法: displayS
public class LibraryModel<T> {
private List<T> aList;
}
照片库方法:
displaySlideShow()
playVideo()
视频库方法:
displaySlideShow()
playVideo()
通过将库存储为超类,我将如何调用其他库类型的特定方法?这合法吗
请放松点,我还在学习Java,提前谢谢。使用抽象类
图书馆
abstract class Library {
}
然后创建子类
照片库
class PhotoLibrary extends Library {
displaySlideShow(){
}
}
class VideoLibrary extends Library {
playVideo() {
}
}
视频库
class PhotoLibrary extends Library {
displaySlideShow(){
}
}
class VideoLibrary extends Library {
playVideo() {
}
}
在主类或其他类中,您可以使用它们
private List<Library> aList;
aList.add(new PhotoLibrary());
VideoLibrary l2 = new VideoLibrary();
aList.add(l2);
在您的代码中,我是否可以将库接口留空?我真的只想对列表进行操作(添加/删除/显示)。除了列表操作之外,它们不会有任何重叠的方法。除此之外,我是否能够调用仅对一个库可用的特定方法,如:aList.get(2).playVideo()//仅当对象类型为VideoLibrary时可用我使用了您的代码,这回答了我自己的问题。如果列表的类型是接口的类型,我肯定只限于接口的方法。这让我质疑如何访问不属于接口的其他方法。很好,这正是我所需要的,谢谢:)您想要实现。