Я пытаюсь создать общий DAO, следуя этому: http://www.ibm.com/developerworks/java/library/j-genericdao/index.html
Тем не менее, я придерживаюсь его фактического использования. Там строка, которая выглядит так:
GenericDao dao = (GenericDao);
Я не понимаю, что здесь происходит, в основном в правой части уравнения. Eclipse дает мне две метки на этой строке:
GenericDao является сырым типом и должен быть параметризован. (Это находится на GenericDao слева)
GenericDao не может быть разрешено переменной. (Это на GenericDao справа)
Я никогда не видел имя класса/интерфейса в круглых скобках сам по себе в правой части задания, поэтому я не уверен, что с ним делать. Объяснение того, что происходит в этой строке, чтобы я мог понять, что я должен делать с ней, чтобы заставить ее работать, очень ценится.
(Использование Eclipse Kepler, Hibernate 4.3.5, Spring IDE 3.5, M2E 1.4.1, если это имеет какое-либо значение)
Если вы посмотрите на приведенный образец кода, там будет разрыв строки. Строка должна читаться как GenericDao dao = (GenericDao) beanFactory.getBean("personDao");
и исправить ошибку об исходном типе, изменить его на GenericDao<Person,Long> dao = (GenericDao<Person, Long>) beanFactory.getBean("personDao");
или что-то близкое к этому, если предположить, что тип первичного ключа - длинный
Вся строка в вашем примере
GenericDao dao = (GenericDao)beanFactory.getBean("personDao");
Правильная строка кода:
GenericDao dao = (GenericDao)
beanFactory.getBean("personDao"); // This should normally be injected
;
самостоятельно