java如何替换不推荐使用的构造函数DynamoDBMapperFieldModel
最近,我不得不维护一个用Java开发的旧项目(这不是我的强项之一),在编译过程中,我收到了一条关于不推荐使用的API的警告
经过调查,我发现不推荐使用的API是AWS的构造函数DynamoDBMapperFieldModel
。
在查看文档之后,我没有找到任何关于新构造函数的信息,也没有找到如何通过另一种方式实例化它的信息。
我需要这个构造函数,因为我的类正在实现ItemConverter
和方法getFieldModel
下面是我的课程代码:
@Override
public DynamoDBMapperFieldModel getFieldModel(Method getter) {
MethodInfo fieldMeta = meta.get(getter.getDeclaringClass()).get(getter);
return new DynamoDBMapperFieldModel(getter.toString(), fieldMeta.dynamoDBAttributeType, fieldMeta.marshaller);
}
SDK的版本如下:
com.amazonaws:aws-java-sdk-dynamodb:1.9
com.amazonaws:aws-java-sdk:1.11.15
如果您有任何问题,请告诉我,并感谢您的帮助
# 1 楼答案
免责声明:我的回答基于对1.11.15 found here版源代码的检查。我从来没有使用过这个API,所以我的答案更像是由于没有其他答案而提供的见解
除了前面提到的
deprecated
构造函数之外,类DynamoDBMapperFieldModel
还提供以下构造函数:但是,这个构造函数是
private
,这意味着不能从类范围外直接调用它。解决方案似乎是使用DynamoDBMapperFieldModel.Builder
静态内部类来实例化DynamoDBMapperFieldModel对象。class com.amazonaws.services.dynamodbv2.datamodeling.ConversionSchemas有一些关于这个习语的示例,例如:这个成语很常见,通常被称为Builder Pattern
值得注意的是,DynamoDBMapperFieldModel。生成器内部类具有“默认可见性”(无显式访问修饰符):
如有必要,您可以选中this tutorial以了解每个可见性修改器的限制
希望这能帮助您找到最终解决方案