get方法以及Map获取动态类型的问题

发布于 2021-11-27 09:15:45 字数 762 浏览 832 评论 2

@闲.大赋 你好,想跟你请教个问题:

问题描述:

==========================

我想实现一个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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

无声静候 2021-11-29 22:51:37

不是这个意思,比如 ${cache.tempMap['xxx']},cache对象中有一个getTempMap()方法,这个方法返回的是个Map类型。

你曾走过我的故事 2021-11-28 00:21:14

beetl没有实现通过 obj.xxx(key) l来调取obj.getXXX(key);

你最好通过本地调用,比如@obj.getXXX(key) ,或者实现一些自定义方法来解决

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文