我正在为地址表单编写测试。因此我需要有效的数据。
我的第一种方法是使用此数据返回HashMap<String, String>
的方法。 (即m.put("city, "New York")
)。
在我的情况下,我不确定这是否是一个正确的数据结构。我只需要一个容纳数据的容器,以便可以在方法中返回数据。属性的数量和名称是固定的,因此它们在运行时不会更改。所以我并不需要动态地向地图添加和删除元素的功能。
因此我考虑实现一个名为AddressData
的类或类似的类。通过创建AddressData
- 对象,可以将所需数据分配给类属性。所以我可以将它们公开或通过getter方法获取它们。
到目前为止我实现了它:
public HashMap getValidData(String country){
HashMap<String, String> data = new HashMap<String, String>();
if(country.equals("USA")){
data.put("firstname","John");
data.put("lastname","Green");
data.put("city","New York");
}
else if(country.equals("Germany")){
//add valid german address data
}
return data;
}
实施草案与班级:
class AddressData{
private String firstname;
private String lastname;
private String city;
public AddressData(String country){
if(country.equals("USA")){
firstname="John";
lastname="Green";
city="New York";
}
else if(country.equals("Germany")){
//add valid german address data
}
}
public String getFirstname(){ return firstname; }
// other getters
}
答案 0 :(得分:1)
如果你有一个固定的属性列表,你应该创建一个代表你的表单的类,就像你建议的AddressData一样。
答案 1 :(得分:0)
为了使您的代码更加灵活,您的String country
不应该AddressData
,否则,最终会有许多if-else conditions
处理许多国家/地区,而不是将国家/地区代码存储为AddressData
中的密钥和HashMap
值对象,如下所示:
AddressData类:
public class AddressData {
private String firstname;
private String lastname;
private String city;
public AddressData(String firstname, String lastname, String city){
this.firstname=firstname;
this.lastname=lastname;
this.city=city;
}
public String getFirstname(){ return firstname; }
// other getters
}
使用AddressData:
HashMap<String, AddressData> data = new HashMap<String, AddressData>();
AddressData addressData1 = new AddressData("John", "Green", "New York");
data.put("USA", addressData1);
//You can add other address data