Зачем использовать доступ по умолчанию для методов в общем интерфейсе DAO?
Я нашел этот код для универсального интерфейса DAO при просмотре:
public interface GenericDAO<T, ID extends Serializable> {
Class<T> getEntityClass();
T findById(final ID id);
List<T> findAll();
List<T> findByExample(final T exampleInstance);
List<T> findByNamedQuery(
final String queryName,
Object... params
);
List<T> findByNamedQueryAndNamedParams(
final String queryName,
final Map<String, ?extends Object> params
);
int countAll();
int countByExample(final T exampleInstance);
T save(final T entity);
boolean delete(final T entity);
}
Есть ли какая-либо причина, в частности, оставлять методы с модификатором доступа по умолчанию (класс / пакет: да, подкласс / мир: нет)?
PS: дополнительный вопрос. Обычно идентификаторы находятся в реализациях, которые не зависят от СУБД (XML, простой файл...)?
1 ответ
Решение
Методы интерфейса неявно общедоступны. Использование модификатора public, таким образом, является излишним и ненужным.
Checkstyle даже имеет правило, чтобы проверить, что public не используется в интерфейсных методах.