为什么在通用DAO接口中使用方法的默认访问?

时间:2011-08-15 16:47:34

标签: java default dao access-modifiers generic-interface

我在浏览时发现了通用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);
}

是否有任何理由特别留下具有默认访问修饰符的方法(class / package:yes,subclass / world:no)?

P.S:另一个问题。 ID通常是在不依赖于RDBMS(XML,平面文件......)的实现中找到的吗?

1 个答案:

答案 0 :(得分:8)

接口的方法是隐式公开的。使用public修饰符是多余的,也是不必要的。

Checkstyle even has a rule检查接口方法中是否使用了public。