DynamoDB e TableNameOverride com prefixo

Estou testando tabelas do DynamoDB e quero configurar nomes de tabelas diferentes para o ambiente prod e dev usando o prefixo "dev_" para desenvolvimento.

Fiz este teste para imprimir o nome da tabela:

import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapperConfig.TableNameOverride;  

TableNameOverride tbl = new TableNameOverride("test").withTableNamePrefix("dev_");
System.out.println("name=" + tbl.getTableName() + "  prefix=" + tbl.getTableNamePrefix());

Isso imprime:name=null prefix=dev_
Como é que o nome aqui é nulo?

TableNameOverride tbl = new TableNameOverride("test");//.withTableNamePrefix("dev_");
System.out.println("name=" + tbl.getTableName() + "  prefix=" + tbl.getTableNamePrefix());

Isso imprime:name=test prefix=null

*Como posso obter o nome da tabela como "dev_test"? *

Eu quero usar isso mais tarde para obter um prefixo "dev_" para todas as tabelas no modo de desenvolvimento como este:

DynamoDBTable annotation = (DynamoDBTable) myclass.getClass().getAnnotation(DynamoDBTable.class);  
TableNameOverride tbl = new TableNameOverride(annotation.tableName()).withTableNamePrefix("dev_");

Ou existe outra solução para separar entre tabelas dev e prod?
Primeiro pensei em colocá-los em regiões separadas, mas não tenho certeza disso.

Também pode usar isso:

mapper.save(ck, new DynamoDBMapperConfig(new TableNameOverride((isDev ? "dev_" : "") + annotation.tableName())));

questionAnswers(2)

yourAnswerToTheQuestion