get方法以及Map获取动态类型的问题
@闲.大赋 你好,想跟你请教个问题:
问题描述:
==========================
我想实现一个cache对象,这个对象中提供一个get方法,但是该get方法的返回值为多种类型
beetl模板中用法:
${cache.tempMap["xxxx"]}
${cache.tempList[0]}
这样的话,会出现如下错误:
java.lang.NoSuchMethodError: com.ramnight.cache.RnCache.get(Ljava/lang/String;)Ljava/lang/Object;
at com.ramnight.cache.RnCache_get.value(Unknown Source)
=========================
想问一下,这个对象中除了提供这种用公用的get方法,或者具体的getMethod(比如:getTempMap,getTempList)方法,还有没有别的方法实现?
我之前用的就是写一堆具体的getMethod方法,但是问题是我需要在所有这些方法中加一个判断,就是判断是否在redis中有该方法对应的缓存,没有的话再执行查询数据库返回结果。现在的情况是,因为每个方法都需要加判断,所以想是不是有办法能把这个判断提取出来。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
不是这个意思,比如 ${cache.tempMap['xxx']},cache对象中有一个getTempMap()方法,这个方法返回的是个Map类型。
beetl没有实现通过 obj.xxx(key) l来调取obj.getXXX(key);
你最好通过本地调用,比如@obj.getXXX(key) ,或者实现一些自定义方法来解决