问题描述
在使用 spring data redis listOps 时,我遇到了这种奇怪的行为。有rightPushAll
方法被重载,如下所示
Long rightPushAll(K key,V... values);
Long rightPushAll(K key,Collection<V> values);
然后我将该方法称为
List<String> list1 = Arrays.asList("VAL_1","VAL_2");
redisTemplate.opsForList().rightPushAll(key2,list1);
虽然我将参数作为List传递,但实际上是在调用此签名Long rightPushAll(K key,V... values);
。我调查了该项目的test suits。我称该方法为测试。
redisTemplate.opsForList().rightPushAll(key2,Arrays.asList("VAL_1","VAL_2"));
这一次它调用了Long rightPushAll(K key,Collection<V> values)
。因此,我已经用一个简单的Java程序进行了测试,结果出乎意料地如此!
public static void main(String[] args) throws ParseException {
List<String> list = Arrays.asList("VAL_1","VAL_2");
Main test = new Main();
test.foo("",list);
}
public <T,K> Long foo(String K,T... val) {
System.out.println("foo T...");
return 0L;
}
public <T,Collection<T> list) { // ** This Method Is Beign Invoked **
System.out.println("list");
return 0L;
}
我正在使用Intellij Idea和Java8。为什么会出现这种行为,或者我在这里想念什么?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)