问题描述
我正在尝试在我的应用程序中设置一个微框架以删除重复的代码(“DRY”原则)。具体来说,我需要将项目中的注释与不同项目中的几个 POJO 类(这些是下面的 <T>
类)结合使用,这些类不共享我的依赖项。
所以我从这个开始:
public abstract class DynamoRepo<T> {
@DynamoDbBean
public static class Entity<T> {
private Number id;
private T bean;
@DynamoDbPartitionKey
@DynamoDbConvertedBy(IdConverter.class)
public Number getId() {
return id;
}
public void setId(Number id) {
this.id = id;
}
@DynamoDbFlatten
public T getBean() {
return bean;
}
public void setBean(T bean) {
this.bean = bean;
}
...
...下面的代码在运行时需要注解
private DynamoDbTable<Entity<?>> table;
...在构造函数中进行一些设置...
table = enhancedClient.table(tableName,TableSchema.fromBean(new Entity<? extends T>() {}.getClass()));
...我希望能够接受一个<T>
,它不需要调用者知道Entity
:
public void putItem(T item) {
table.putItem(new Entity<T>(item));
}
唉,这段代码无法编译。这里有几个问题,任何小的调整都会导致不同的编译错误。
我如何才能在不向底层 POJO(不在我的项目中并且没有 DynamoDB 作为依赖项)添加 @DynamoDb
注释或必须手动创建扩展每个的子类的情况下完成这项工作POJO(并通过创建整个并行对象层次结构将 DRY 抛出窗口)?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)