Недавно мы с коллегой пару раз сталкивались с этим предупреждающим сообщением. Для приведенного ниже кода:
package com.mycompany.product.data;
import com.mycompany.product.dao.GenericDAO;
public abstract class EntityBean {
public abstract GenericDAO<Object, Long> getDAO();
// ^^^^^^ <-- WARNING OCCURS HERE
}
предупреждение появляется в указанном месте как
EntityBean.getDAO() has non-API return type GenericDAO<T, ID>
Поиск в Google по запросу «имеет тип возврата, отличный от API» показывает только те случаи, когда это сообщение появляется в списках проблем. То есть публичного объяснения этому нет.
Что это значит? Мы можем создать фильтр проблем с использованием в Eclipse, чтобы сообщение исчезло, но мы не хотим этого делать, если наше использование является законной проблемой.
Спасибо!
EDIT: это предупреждение не связано с параметризацией, так как это объявление getFactory()
также приводит к такому же предупреждению:
public abstract class EntityBean {
protected DAOFactory getFactory() {
return DAOFactory.instance(DAOFactory.HIBERNATE);
}
}