是否可以只在同一个包和子包中访问接口?

srh*_*srh 6 java interface

是否可以只在同一个包和子包中访问接口?

我已经使用默认修饰符定义了一个接口:

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是两个彼此无关的独立包.

所以回答你的问题:不,不可能只为子包提供界面.您可以将您的界面公开,但随后它将对所有其他包可见.