I have two classes
public abstract class AbstractDAO<T> {
private final MyExecutor<T> myExecutor;
private final Class<T> clazz;
public AbstractDAO(MyExecutor<T> myExecutor, Class<T> clazz) {
this.myExecutor = myExecutor;
this.clazz = clazz;
}
}
and
@Component
public class MyDAOImpl extends AbstractDAO<Manager> {
private final SessionManager sessionManager;
private final MyExecutor<Manager> myExecutor;
@Autowired
public MyDAOImpl(SessionManager sessionManager, MyExecutor<Manager> myExecutor) {
super(myExecutor, Manager.class);
this.sessionManager = sessionManager;
this.myExecutor= myExecutor;
}
}
I had an error when defining an abstract class, which said that: "The class does not contain a constructor for matching auto-install."
All I have done is add an extra constructor to the AbstractDAO constructor, which is a class. I need this because I have not found a way to detect this from T at runtime (a search on the stack says it is not).
How can i fix this? How do I pass class information that can only be defined in an implementation class?
Many thanks
Kevin source
share