Я создал достаточно большой веб-проект на Eclipse (8 месяцев работы). Я использую систему сборки Eclipse до сих пор. Теперь я хотел бы перейти к Ant по ряду причин (среди них, возможность добавить определенные задачи перед WAR, такие как сжатие js и другие ...). Я обнаружил, что Eclipse автоматически создает файл build.xml
со всеми установленными зависимостями. Проблема в том, что, если я пытаюсь запустить его, он терпит неудачу и выдает эту ошибку:
type parameters of <TypeName>TypeName cannot be determined; no unique maximal instance exists for type variable TypeName with upper bounds TypeName,java.lang.Object
[javac] return dao.getItemByProperty(propertyName, val, objectClass);
он умирает из-за ошибки с дженериками ... обычно он хорошо компилируется в Eclipse (я знаю, что это другой компилятор ...). Как я могу иметь JAVAC работать с этим ??
Метод:
@Override
@Transactional
public <TypeName> TypeName getItemByProperty(String propertyName,
Object val, Class objectClass) {
return dao.getItemByProperty(propertyName, val, objectClass);
}
и dao.getItem ... is
@Override
public <TypeName> TypeName getItemByProperty(String propertyName,
Object val, Class objectClass) {
Session sess = sessionFactory.getCurrentSession();
Criteria criteria = sess.createCriteria(objectClass);
criteria.add(Expression.eq(propertyName, val));
@SuppressWarnings("unchecked")
List<TypeName> results = criteria.list();
if (results != null && results.size() != 0) {
TypeName res = results.get(0);
return res;
}
return null;
}
они в двух классах, которые соответственно реализуют два интерфейса, первый для службы, второй для dao, и они используются в Spring.
Почему это происходит? Отличается ли Eclipse-компилятор от javac?