我遍历一个打字稿数组并将对象添加到地图中。键应该是唯一的,所以我检查它们是否已经与Map.has
一起存在但是,由于某种原因,它不会返回正确的值并添加重复的键。请检查我的代码:
@GET
@Path("/downloadFile/{id}")
@Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_JSON })
public Response download(@PathParam("id") String id) {
System.out.println("Server Connected");
DocumentObject obj = null; // get some
DataAccess ds = new DataAccess();
byte[] buf = null;
String path = null;
try {
List list = ds.getDocumentObjectByKey(id);
obj = (DocumentObject) list.get(0);
buf = obj.getImage();
String s = obj.getFileName().replaceAll(" ", "-");
path = s;// Settings.getTempFolder()+File.pathSeparator + s;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// final GenericEntity<List<DocumentObject>> entity = new
// GenericEntity<List<DocumentObject>>(list) {
// };
return Response.ok(buf).build();
}
它们的键(源系统对象)如下所示:
for (const userAccount of res) {
// create key if doesn't exist
if (!this.sourceSystemsUserAccounts.has(userAccount.sourceSystem)) {
this.sourceSystemsUserAccounts.set(userAccount.sourceSystem, new Array<UserAccount>());
}
// add user account to map and set new array
const value: Array<UserAccount> = this.sourceSystemsUserAccounts.get(userAccount.sourceSystem);
value.push(userAccount);
this.sourceSystemsUserAccounts.set(userAccount.sourceSystem, value);
}
有没有人知道我做错了什么?
答案 0 :(得分:1)
你有一个班级作为关键。 class SourceSystems
。该类的两个实例不是相等。因此重复。
使用字符串键作为地图。