問題:第一次使用時rightPushAll,我以為這個方法就是直接把我們集合中的數據全部添加到redis的list里面,但是如果直接使用ArrayList類型添加,發現事情並不是我們想的這樣,他並沒有一個個遍歷添加,而是把整個ArrayList當成一個值添加。
通過源碼可以看到,rightPushAll重載了兩個同名方法,第一個方法是多值參數,第二個方法是一個Collection集合對象。但是調用的時候無論我們傳的是Collection對象的子集,還是直接傳入數組,通過idea進入方法,發現都是調用的第一個方法,這就造成了剛剛那個情況,直接把ArrayList當成多值參數里面的一個元素了。
解決:當我們把ArrayList變成數組時,就變成我們想要的結果了,也就是一個個元素單獨添加進去了。通過本地測試方法的重載發現,如果傳的是集合對象,是直接走的第二個方法,並不會走第一個方法。所以這里是一個bug,具體原因未知。