HashMap показывает только одно значение ключа - PullRequest
1 голос
/ 08 мая 2020

Ниже приведен код, в котором я помещаю адрес для двух разных ключей, но я получаю только одно значение ключа, т.е. для «ADDRESS_HOME».

Я не знаю, заменен ли «ADDRESS_MAIL» или что-то еще.

  var homeAddress = new Address
  var mailAddress = new Address

  homeAddress.setAddressLine1(recordString(EmployeeJobMetadata.homeAddressLine1.id))
  mailAddress.setAddressLine1(recordString(EmployeeJobMetadata.mailAddressLine1.id))

  var addressMailMap = new HashMap[String, Address]
  addressMailMap.put(mailAddress.ADDRESS_MAIL, mailAddress)

  var homeAddressMap = new HashMap[String, Address]
  homeAddressMap.put(homeAddress.ADDRESS_HOME, homeAddress)

  employeePersonalData.setAddressMap(addressMailMap)

  employeePersonalData.setAddressMap(homeAddressMap)

Класс Pojo:

@DynamoDBDocument
class EmployeePersonalData {

@BeanProperty
var firstName: String = _

@BeanProperty
var lastName: String = _

@BeanProperty
var addressMap: Map[String, Address] = _ 
  }

1 Ответ

2 голосов
/ 09 мая 2020

Вы создаете и добавляете два отдельных HashMap (addressMailMap и addressMailMap), а затем назначаете их оба в одно поле (через setAddressMap) в employeePersonalData:

employeePersonalData.setAddressMap(addressMailMap)
employeePersonalData.setAddressMap(homeAddressMap) // ref to addressMailMap is replaced by ref to homeAddressMap

Если вы используете wi sh для того, чтобы оба адреса были на одной карте, вам следует создать только одну хэш-карту и поместить в нее адреса.

...