@Test public void t5() { List<DataShowVo> dataShowVos =new ArrayList<>(); Set<Object> keyDataList = redisTemplate.opsForSet().members("keyDateList"); for (Object key : keyDataList) { List<Object> dateList = redisTemplate.opsForList().range(key.toString(), 0, -1); System.out.println(dateList); String date = RedisKeyGenerator.formatDate(key.toString()); DataShowVo list = DataShowVo.builder().data(date).keyName(key.toString()).list(dateList).build(); dataShowVos.add(list); } dataShowVos.forEach(System.out::println); } 为什么第二次的dateList没有数据,在别的方法里可以查到
时间: 2024-04-19 13:29:37 浏览: 6
根据你提供的代码,第二次的 `dateList` 没有数据的可能原因有以下几个:
1. Redis 数据为空:首先,你需要确保在第二次运行这段代码之前,在 Redis 中的键 `key.toString()` 对应的列表中确实存在数据。你可以通过打印 `keyDataList` 的结果来确认 Redis 中是否有数据。
2. 键名不正确:确保在第二次运行时,`key.toString()` 的值与第一次运行时是一致的。如果键名不正确,那么就无法获取到正确的列表数据。
3. RedisTemplate 配置问题:如果在其他方法中可以从 Redis 中获取到数据,但是在这个方法中获取不到,可能是由于 RedisTemplate 的配置问题。请确保你的 RedisTemplate 配置正确,并且连接到正确的 Redis 实例。
检查以上几个方面,应该能找到导致第二次的 `dateList` 没有数据的原因。希望能帮到你解决问题!如果还有其他疑问,请随时追问。
相关问题
List<CustomerInfo> customerInfoList = new ArrayList<>(); List<PostLoanOrder> orderList = new ArrayList<>(); List<PostControllerLegalInfo> plistInfo = new ArrayList<>(); List<PostLoanReceipt> receipts = new ArrayList<>(); List<PostRepaymentPlan> plans = new ArrayList<>(); List<AuthBatchAndSendDto> authBatchAndSendDtoList = new ArrayList<>(); 改进代码
可以使用 diamond operator 来简化代码,还可以使用 var 关键字来更清晰地表达变量类型:
```java
var customerInfoList = new ArrayList<CustomerInfo>();
var orderList = new ArrayList<PostLoanOrder>();
var plistInfo = new ArrayList<PostControllerLegalInfo>();
var receipts = new ArrayList<PostLoanReceipt>();
var plans = new ArrayList<PostRepaymentPlan>();
var authBatchAndSendDtoList = new ArrayList<AuthBatchAndSendDto>();
```
此外,如果这些变量都是在同一个类中使用的,可以将它们作为类的成员变量,这样代码会更加简洁。
下列集合对象创建正确的是() ArrayList<int> list = new ArrayList<>(); ArrayList<Integer> list = new ArrayList<>(); ArrayList<> list = new ArrayList<Integer>(); ArrayList<Object> list4 = new ArrayList<Integer>();
下列集合对象创建正确的是:
ArrayList<Integer> list = new ArrayList<>();
在Java中,泛型只能使用引用类型,不能使用基本类型。因此,需要使用包装类Integer来代替基本类型int。正确的语法是在尖括号内指定泛型的类型,如ArrayList<Integer>表示创建一个存储Integer对象的ArrayList集合对象。
其他选项是错误的:
ArrayList<int> list = new ArrayList<>(); - 错误,基本类型int不能用作泛型参数。
ArrayList<> list = new ArrayList<Integer>(); - 错误,尖括号内必须指定泛型的类型。
ArrayList<Object> list4 = new ArrayList<Integer>(); - 错误,泛型类型必须匹配,不能将一个泛型类的对象赋值给另一个泛型类的引用。