在struts2 中的action中 无法转换泛型对象的类型。

发布于 2021-11-26 21:06:59 字数 930 浏览 877 评论 3

代码如下
接口action
public interface GenericTypeController<T,ID> {

public String save();
.........................

}
抽象类action
public class AbstractGenericTypeController<T,ID> extends ActionSupport implements GenericTypeController<T,ID> {

private Class<T> entityClass ;

public AbstractGenericTypeController() {
entityClass = GenericTypeResolverUtil.resolverTypeArgument(getClass(),GenericTypeController.class);
}
public String save() {

sessionFactory.getCurrentSession().save(entityClass);
//save时出现了org.hibernate.MappingException: Unknown entity: java.lang.Class 错误

}

}

实现类
public class AirPlaneController extends AbstractGenericTypeController<Airplane,Long>{

private Airplane airplane;

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

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

发布评论

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

评论(3

2021-11-30 00:01:01

不明白

成熟稳重的好男人 2021-11-30 00:01:01

谢谢,那么类似与List<T>的怎么办?

柠檬 2021-11-29 22:10:59

这是我以前写的,可以参考下

public AbstractGenericTypeController() {
        Type c = (((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0]);
        if (c instanceof ParameterizedType) {
            entityClass = (Class<T>) ((ParameterizedType) c).getRawType();
        }
        else {
            entityClass = (Class<T>) c;
        }
    }

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