我正在编写一个对文件进行一些计算的 Java 程序。 该程序支持 3 种类型的文件(文档、图像、视频),每种类型只允许几种格式:
enum DocType {
pdf, doc, docx, xls, xlsx, ppt, pptx
}
enum ImageType {
bmp, jpg, png, gif, ico
}
enum VideoType {
avi, mpg, mp4, wmv, mov, flv, swf, mkv
}
在我的程序中,无论文件类型如何,我都希望保留文件扩展名,这意味着我希望能够执行以下任何任务:
FileType fileExt = DocType.doc
FileType fileExt = ImageType.jpg
FileType fileExt = VideoType.mp4
如何在 Java 中实现这种行为?我知道枚举不能扩展其他枚举,所以基本上优雅的解决方案是不可能的。
谢谢
最佳答案
您可以声明一个管理它们的接口(interface)
interface FileType{
}
enum DocType implements FileType{
PDF // yes, uppercase for constants
...
}
enum ImageType implements FileType{
....
}
然后你可以声明FileType
FileType file = DocType.PDF;
关于java - 将 3 个枚举泛化为一种类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34675961/