java args[] возвращает пустой список из таблицы dynamodb

#java #amazon-web-services #amazon-dynamodb #aws-sdk

Вопрос:

У меня есть вызываемая таблица dynamodb environments и столбец в этой таблице, вызываемый env_name при запуске класса в командной строке:

 java -cp target/sharedlibraries.jar com.mimo.sharedlibraries.fetchCMDBtable environments env_name
 

я получаю пустой список вместо списка, полного названий сред.

Вот мой класс, который я использую:

 public class fetchCMDBtable {
    
    public static void main(String[] args)throws Exception {
        //default values

        if (args.length != 2) {
            System.out.println("Not enough args!");
            System.exit(1);
        }
        String tableName = args[0]; //environments
        String tableColumn = args[1]; //env_name

        DynamoDbClient client = DynamoDbClient.builder()
                .region(Region.EU_WEST_1)
                .build();
            
        CMDB(client,tableName,tableColumn);
        System.out.println(CMDB(client, tableName, tableColumn));
        
        client.close();
    }

    public static List<String> CMDB(DynamoDbClient client,String tableName, String tableColumn) throws Exception {

        List<String> ListValues = new ArrayList<>();

        try {
            
            ScanRequest scanRequest = ScanRequest.builder()
                        .tableName(tableName)
                        .build();
            ScanResponse response = client.scan(scanRequest);

            for (Map<String, AttributeValue> item : response.items()){
                Set<String> keys = item.keySet();
                for (String key : keys) {
                    
                    if (key == tableColumn) {
                        ListValues.add(item.get(key).s()) ;
                    }
                }
            }
            
        } catch (DynamoDbException e){
            e.printStackTrace();
            System.exit(1);
        }
        return ListValues;
        
    }
}
 

Ответ №1:

попробуйте использовать key.equals(tableColumn) вместо key == tableColumn