2014-02-16 3 views
3

У меня есть два классаКласс не содержит соответствующий конструктор для автоматического связывания

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; 
    } 
} 

и

@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; 
    } 
} 

я получил ошибку при определении абстрактного класса говорит, что: «Класс не содержать конструктор соответствия для автопостановки ».

Все, что я сделал, добавляет дополнительный конструктор к конструктору AbstractDAO, который является классом. Мне нужно это, потому что я не нашел способа обнаружить это из T во время выполнения (поиск в стеке говорит, что его нет).

Как это исправить? Как передать информацию о классе, которая может быть определена только в классе реализации?

Большое спасибо

+0

Это ошибка времени компиляции. Нет стека. Благодарю. – Kevin

+0

Возможно, вы захотите прочитать: http://stackoverflow.com/questions/3153546/how-does-autowiring-work-in-spring и http://stackoverflow.com/questions/19414734/spring-autowired-usage – pedromss

+0

Ваш код, как показано, компилируется отлично. –

ответ

Смежные вопросы