The class does not contain a match constructor for autoinstall

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

+3
source share
1 answer

All Articles