【发布时间】:2020-05-31 16:09:09
【问题描述】:
我有一个枚举,它实现了一个接口。这个接口的目的只是在多个枚举之间创建一个绑定,以便我以后可以实现一个插件系统。 (This post 可能会稍微清楚一点。)
我的图书馆枚举是这样的:
public interface Resource extends Displayable<Resource> {
// all the methods that implements my enum
// Displayable is just an interface that I need in my game
// Just doesn't consider it, it can't interfer
}
以及实现此接口的枚举示例:
public enum LibraryEnum implements Resource {
// static final fields
// fields and resources
// all implemented methods
}
问题是我想将它存储为一个接口,以启用一种枚举继承,因为我即将创建一个插件系统。任何开发者都只需要实现这个独特的接口来在游戏中添加资源。但我不知道他(或她)会如何命名它(可能会有一些双打)。
我有一个带有相关字段的类,如下所示:
@DatabaseTable(tableName = "packs")
public class Pack implements Displayable<Pack> {
@DatabaseField(columnName = "id", generatedId = true)
private Long packId;
// Here it is
@DatabaseField
private Resource resource;
// Is there any annotation arguments to add ?
@DatabaseField
private int quantity;
// Some other fiels
// Then constructors and methods
}
我已经阅读了一些文档,它说要创建 DataPersister 接口的自定义实现。于是我开始做,但是实现的方法太多了(20个?),不知道从哪里开始,从哪里结束。也许这是错误的做法? 文档显示了一个示例,其中方法甚至不存在,以及 java 中已经存在的类型(日期和日期时间)。
我怎样才能做到这一点?或者这甚至可能吗?如果没有,无论如何都可以做我想做的事(在数据库中存储未知的常量枚举字段)?
【问题讨论】:
标签: java database enums ormlite