containsValue()
値がいつマップに含まれるかを確認しようとしていますが、正しく確認できない理由がわかりません。
これが私のコードです:
Map<String, String> usersMap = userAPI.getBuyersFromBUUPToRootMap(getParentBusinessUnitId());
//usersMap's [STDOUT] {super, root (rootSuper) - [EZMRootCmp]=3008, user, buyer A (buyer1) - [EZMBuyer]=1007, user, Obsvr (observer) - [EZMBuyer]=1006, user, Root (rootTest) - [EZMRootCmp]=3001, user, Test (test) - [EZMBuyer]=1001, zabuhab, Miguel (buyerAdmin1) - [EZMBuyer]=1008}
System.out.println(usersMap.values());
//[STDOUT] [3008, 1007, 1006, 3001, 1001, 1008]
System.out.println(usersMap.containsValue(getUserProfile().getUserId())); //[STDOUT] false
//getUserProfile().getUserId() [STDOUT] 1008
ご覧のとおりgetUserProfile().getUserId()
、値が1008
である はマップにありますが、 が返されますfalse
。
なぜそれが起こっているのか、どうすればこの状況を修正できるのか知っていますか? を追加しようとしましたLong.valueOf(getUserProfile().getUserId())
; しかし、それは戻ってきますfalse
PS: SO でこのような質問を検索しましたが、この状況では役に立ちませんでした
以下、私の完全なコード:
UserAPI userAPI = ServiceLocator.getService(UserAPI.class);
Map<String, String> usersMap = userAPI.getBuyersFromBUUPToRootMap(getParentBusinessUnitId());
System.out.println(usersMap);
System.out.println("#######################");
System.out.println(usersMap.values());
System.out.println("##########valor para getAuctionHeaderDO().getPrimaryContact().getId() #############");
System.out.println(usersMap.containsValue(getAuctionHeaderDO().getPrimaryContact().getId()));
System.out.println("##########valor para getUserProfile().getUserId()#############");
System.out.println(getUserProfile().getUserId());
System.out.println(usersMap.containsValue(getUserProfile().getUserId()));
そして結果:
[STDOUT] {super, root (rootSuper) - [EZMRootCmp]=3008, user, buyer A (buyer1) - [EZMBuyer]=1007, user, Obsvr (observer) - [EZMBuyer]=1006, user, Root (rootTest) - [EZMRootCmp]=3001, user, Test (test) - [EZMBuyer]=1001, zabuhab, Miguel (buyerAdmin1) - [EZMBuyer]=1008}
[STDOUT] #######################
[STDOUT] [3008, 1007, 1006, 3001, 1001, 1008]
[STDOUT] ##########valor para getAuctionHeaderDO().getPrimaryContact().getId() #############
[STDOUT] false
[STDOUT] ##########valor para getUserProfile().getUserId()#############
[STDOUT] 1008
[STDOUT] false