Sur*_*dra 8 java types key map
我必须完成一个奇怪的特殊场景.其描述如下:
我必须设计一个Map,其中' Keys '总是String类型.但是,其中一个键的' Value '可能是String或List(取决于特定键可以拥有的值的数量.如果该特定键只有一个值,则'Value'将是一个String,并且必须如果密钥包含许多值,则为List.如何完成这种情况?
例如:地图中有2个键,即"姓名"和"电话号码".一个人只能有一个姓名和多个电话号码.所以这里的第一个键,即"Name"应该具有Value的'String'类型,而对于第二个键,即"Phone Nos"应该具有Value的'List'类型.如何申报这样的地图.可能吗?
nfe*_*ner 13
有可能做类似的事情Map<String, Object>.
但是:我强烈建议你考虑你的设计.您应该为您的人使用课程.这样你就可以做到:Map<String, Person>拥有Person姓名,电话号码和其他信息的getter和setter.
示例Person类:
public class Person {
private String name;
private List<String> phoneNumbers = Collections.emptyList();
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setPhoneNumbers(List<String> phoneNumbers) {
this.phoneNumbers = phoneNumbers;
}
public void addPhoneNumber(String number) {
phoneNumbers.add(number);
}
public List<String> getPhoneNumbers() {
return phoneNumbers;
}
}
Run Code Online (Sandbox Code Playgroud)