gpt4 book ai didi

Java - 如何将通用参数作为 Class 传递给构造函数

转载 作者:行者123 更新时间:2023-11-29 07:17:48 28 4
gpt4 key购买 nike

我这里有个问题还没解决,问题是我有这个抽象类:

public abstract class AbstractBean<T> {
private Class<T> entityClass;

public AbstractBean(Class<T> entityClass) {
this.entityClass = entityClass;
}
...
}

现在我有另一个继承这个抽象的类:

@Stateless
@LocalBean
public class BasicUserBean<T extends BasicUser> extends AbstractBean<T> {
private Class<T> user;

public BasicUserBean() {
super(user); // Error: cannot reference user before supertype contructor has been called.
}
}

我的问题是我怎样才能让它工作?我正在尝试使类 BasicUserBean 可继承,所以如果我有类 PersonBean 继承 BasicUserBean 然后我可以在 Generic 中设置实体 Person,它也继承了实体 BasicUser。它最终会是:

@Stateless
@LocalBean
public class PersonBean extends BasicUserBean<Person> {

public PersonBean() {
super(Person.class);
}
...
}

我只想将 BasicUserBean 的基本功能继承给所有后代,因此我不必在所有后代中重复相同的代码。谢谢!

最佳答案

您需要将构造函数添加到 BasicUserBean服用Class<T>

public BasicUserBean(Class<T> entityClass) {
super(entityClass);
}

您的无参数构造函数将不起作用,因为您要扩展的类需要 T .你不能T在你的构造函数中不接受 T作为论点;反正不是没有 Actor

关于Java - 如何将通用参数作为 Class<T> 传递给构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8097726/

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