Использование вторичного не общедоступного класса Java приводит к ошибке "Тип невидим", даже если методы доступа являются общедоступными в классе Main
У меня есть файл 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;
}
}
Если я пытаюсь получить доступ из другого файла, он работает, если я только пытаюсь получить доступ к entityManager:
Main main = new Main();
main.getEntityDrawer(); // NO PROBLEM!
Но если я пытаюсь получить доступ к одному из атрибутов (даже общедоступных) из entityManager, он не работает:
Main main = new Main();
main.getEntityDrawer().getEmpleado(); // Gives error "The type EntityDrawer is not visible"
Я не могу понять, почему это происходит, кто-то может дать мне некоторое представление об этой проблеме?...
3 ответа
Я предполагаю, что вы пытаетесь использовать пакет локального класса EntityDrawer
в другой упаковке, что вы не можете сделать.
Попробуйте сделать класс public
Сделать класс public
или переместите вызывающий класс в тот же пакет.
Меня тоже раздражает эта проблема, я удалил ненужные файлы jar и добавил только необходимые файлы jar в classpath. Иногда, если вы поместите избыточные файлы JAR в путь к классу, это приведет к конфликту файлов JAR, и это покажет ошибку (например, "тип org.apache.lucene.index.DirectoryReader не виден").
Спасибо.