Java辅助非公共类使用会产生错误"类型不可见",即使访问的方法在Main类中是公共的

wil*_*824 6 java encapsulation class public-fields

我有一个Main.java文件:

public class Main{

  private EntityDrawer entityDrawer;

  public void setEntityDrawer(EntityDrawer entityDrawer) {
    this.entityDrawer = entityDrawer;
  }

  public EntityDrawer getEntityDrawer() {
    return entityDrawer;
  }
}

class EntityDrawer {

  private Empleado empleado;  

  public Empleado getEmpleado() {
    return empleado;
  }

  public void setEmpleado(Empleado empleado) {
    this.empleado = empleado;
  }

}
Run Code Online (Sandbox Code Playgroud)

如果我尝试从另一个文件访问,如果我只尝试访问entityManager它是有效的:

Main main = new Main();
main.getEntityDrawer(); // NO PROBLEM!
Run Code Online (Sandbox Code Playgroud)

但是如果我尝试从entityManager访问其中一个属性(即使是公共的),它也不起作用:

Main main = new Main();
main.getEntityDrawer().getEmpleado(); // Gives error "The type EntityDrawer is not visible"
Run Code Online (Sandbox Code Playgroud)

我无法理解为什么会发生这种情况,有人能给我一些关于这个问题的见解吗?...

Pet*_*rey 12

我假设您正在尝试EntityDrawer在另一个包中使用包本地类,这是您无法做到的.

尝试上课 public


kda*_*bir 6

创建类public或将调用类移动到同一个包.