是否可以只在同一个包和子包中访问接口?
我已经使用默认修饰符定义了一个接口:
package com.mycompany.myapp.dao; import java.io.Serializable; interface BaseDao<T,Id extends Serializable> { public void create(T t); public T readById(Id id); public void update(T t); public void delete(T t); }
现在我有一个子包,我想定义一个实现BaseDao的类.所以我写了这段代码:
package com.mycompany.myapp.dao.jpa; import java.io.Serializable; public class BaseDaoJpa<T,Id extends Serializable> implements BaseDao<T,Id> { ... }
但我得到这个错误:
BaseDao cannot be resolved to a type
那么这是Java对接口的限制,还是我做错了?
谢谢
解决方法
在Java中,没有“子包”这样的东西.不要被点缀所欺骗. com.mycompany.myapp.dao和com.mycompany.myapp.dao.jpa是两个独立的包,它们彼此无关.
所以回答你的问题:不,不可能只为子包提供界面.您可以将您的界面公开,但随后它将对所有其他包可见.