gpt4 book ai didi

java - 使用 java 中的反射在 Play 中动态加载 View 类

转载 作者:太空宇宙 更新时间:2023-11-04 06:33:25 25 4
gpt4 key购买 nike

我有一个配置文件,我想从中读取 View 的名称,然后渲染 View 。我正在尝试使用 java 反射来实现此目的,代码如下所示:

Class viewClass = Play.current().classloader().loadClass(viewName);
Method render = viewClass.getDeclaredMethod("render");
page = (Html)render.invoke(viewClass.newInstance());

我收到 Java.lang.ClassNotFoundException。 viewName 是 View 的名称。

最佳答案

您没有发布如何获取类名,因此我在本例中为索引 View 提供了一个完整的示例。

String viewName = "views.html.index"
Class viewClass = Play.current().classloader().loadClass(viewName);
Method render = viewClass.getDeclaredMethod("render");
Html page = (Html) render.invoke(null);

还有一个问题是您无法调用 View 类的 newInstance() 方法。幸运的是,您不需要类的实例,因为可以静态调用 render() 方法。只需将 null 传递给 invoke() 方法即可。

关于java - 使用 java 中的反射在 Play 中动态加载 View 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25783368/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com