Я уверен, что это довольно простой вопрос, но я нахожусь в стороне от того, как его изящно решить (оператор case не похож на наиболее масштабируемый вариант).Как сопоставить свойства двух разных классов в Java
Мне нужно преобразовать и заполнить адресные данные одного типа и упаковать его для веб-службы, имеющей другой тип. К сожалению, типы не выравниваются, и мне придется как-то отобразить их.
Например, у меня есть AddressData
, который содержит String AddressLine1
, String State
и т.д ... Другой класс, Address
, который должен быть заполнен как конкретный «StateProviceCode
», а не строка для государства ожидает. Как я могу сопоставить String
с конкретным StateProviceCode
, чтобы я мог просто запустить карту и ввести правильный код состояния?
Если это не делает слишком много смысла, я пытаюсь сделать что-то вроде следующего:
Address billingAddress = new Address(); //to be populated
AddressData billingAddressData = updateStoredCardRequest.getPaymentInfo().getBillingAddress();
billingAddress.setAddressLine1(billingAddressData.getLine1()); //String->String
billingAddress.setCity(billingAddressData.getTown()); //String->String
billingAddress.setPostalCode(billingAddressData.getPostalCode()); //String->String
//based on the isocode of the billingAddressData.region, set the stateProviceCode of the billingAddress.
if(billingAddressData.getRegion().getIsocodeShort() == "US-IL"){
billingAddress.setStateProvinceCode(StateProvinceCode.Illinois);
}
Любая помощь на пути сделать это осуществление было бы здорово. Огромное спасибо.
Есть причина, вы не можете используйте «Map»? –
Кроме того, используйте метод equals() для сравнения строкового значения. @see http://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java – owenrb
@KevinKrumwiede - Я могу, но мой вопрос в том, как у меня есть предварительно заполненная карта для использования? Как/Где я могу объявить это, а не устанавливать состояния отдельно на Карте. Я надеюсь, что в этом есть смысл. – user1615559