java - 当 spring 调用 get(Object o, ClassaClass) 使用@Cacheable 时的函数
问题描述
我在springboot中使用@Cacheable并实现Cache接口覆盖以下功能:
public String getName()
public Object getNativeCache()
public ValueWrapper get(Object key)
public void put(Object key, Object value)
public ValueWrapper putIfAbsent(Object key, Object value)
public void evict(Object key)
public void clear()
但我留下其他两个函数返回 null
public <T> T get(Object o, Class<T> aClass)
public <T> T get(Object o, Callable<T> callable)
现在@Cacheable 工作正常,但是当spring 调用这两个函数时,是否可以让它们返回null?
解决方案
是的,这是个问题。您未能实现接口。这违反了https://en.wikipedia.org/wiki/Liskov_substitution_principle(“SOLID ”中的“L”)。
它为后续开发提供了一个陷阱,接口的使用者必须知道在底层实现中要避免什么。
简而言之,你没有满足接口的约定。
推荐阅读
- javascript - 对象内的地图具有相同索引的问题
- python - 如何在epicbox中提供超过1个输入参数
- typescript - 使用 TypeORM 重命名主键时出现 QueryFailedError
- python - 熊猫读取xml的奇怪不匹配标签错误
- mysql - 给定关系模式在 SQL 中提供查询
- react-native - 使用 React Native EXPO 分享到 Instagram 提要
- python - 如何从此元组中删除引号?我怎样才能使列表同质化
- arrays - Slurm 阵列采用双倍 CPU 比请求
- javascript - AWS Amplify 登录错误 - 登录错误... [TypeError: (0, _getRandomBase.default) 不是函数
- python - Pb 检索元组列表中的最大值