JFinal的一个问题,想加入一个init自动方法结果失败

发布于 2021-12-04 04:54:44 字数 440 浏览 638 评论 4

想法是这样的,首先 有个 base 类继承controller,然后base里面有个init方法,然后在拦截器里面写入以下代码来自动执行每个子类里面的init方法

...
Controller c = inv.getController();
Method method = c.getClass().getDeclaredMethod("init");
method.invoke(c);
...

结果执行的时候提示子类里面不存在 init 方法

而我改成这样,又能运行成功:

...
Base c = (Base)inv.getController();
c.init();
...

有点不太理解,我使用第一种方法为何不行呢?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

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

发布评论

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

评论(4

泛滥成性 2021-12-05 07:48:57

那应如何改进呢

风苍溪 2021-12-05 07:39:25

回复
c.getClass().getSuperclass().getDec.....

女中豪杰 2021-12-05 07:17:28

init方法就是父类里 不在子类里

情绪失控 2021-12-05 06:47:35

getDeclaredMethod("init"); 改成 getMethod("init");

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