DynamoDB JDK 2.X 中 ItemUtils.toAttributeValue 的等效项?

gol*_*p04 6 java amazon-web-services amazon-dynamodb

com.amazonaws:aws-java-sdk-bundle 1.X 中,有一个方便的辅助方法ItemUtils.toAttributeValue可以将 any 转换ObjectAttributeValue具有正确类型的an :

        ... if (value instanceof Boolean) {
            return result.withBOOL((Boolean)value);
        } else if (value instanceof String) {
            return result.withS((String) value);
        } else if ( ...
Run Code Online (Sandbox Code Playgroud)

AWS JDK 2.X 中是否有与此方法等效的方法?具体来说,我正在使用 DynamoDB 和software.amazon.awssdk:dynamodb 2.X1.X2.X中的AttributeValue类甚至不相同,因此使用from 1.X 不是一种选择。ItemUtils.toAttributeValue

gol*_*p04 2

同时,我只是从 1.X 复制了我需要的功能:

  static AttributeValue toAttributeValue(Object value) {
    if (value == null)                   return AttributeValue.builder().nul(true).build();
    if (value instanceof AttributeValue) return (AttributeValue) value;
    if (value instanceof String)         return AttributeValue.builder().s((String) value).build();
    if (value instanceof Number)         return AttributeValue.builder().n(value.toString()).build();

    if (value instanceof Map)            return AttributeValue.builder().m(
      ((Map<String, Object>) value).entrySet().stream().collect(Collectors.toMap(
        Map.Entry::getKey,
        e -> toAttributeValue(e.getValue())
      ))).build();

    throw new UnsupportedOperationException("Time to impl new path for " + value);
  }
Run Code Online (Sandbox Code Playgroud)