是否可以只在同一个包和子包中访问接口?
我已经使用默认修饰符定义了一个接口:
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);
}
Run Code Online (Sandbox Code Playgroud)
现在我有一个子包,我想在其中定义一个实现的类BaseDao.所以我写了这段代码:
package com.mycompany.myapp.dao.jpa;
import java.io.Serializable;
public class BaseDaoJpa<T, Id extends Serializable> implements BaseDao<T, Id> {
...
}
Run Code Online (Sandbox Code Playgroud)
但我得到这个错误:
BaseDao无法解析为某种类型
那么这是Java对接口的限制,还是我做错了?
谢谢
Hoo*_*pje 11
在Java中,没有"子包"这样的东西.不要被点缀所欺骗.com.mycompany.myapp.dao并且com.mycompany.myapp.dao.jpa是两个彼此无关的独立包.
所以回答你的问题:不,不可能只为子包提供界面.您可以将您的界面公开,但随后它将对所有其他包可见.