TGViewer
Java Portal | Программирование Java Portal | Программирование @java_iibrary · 11.6K subscribers
Post #1415 2.5K
Рассмотрим следующий Java-файл, в котором объявлены два класса — Library и Escape. Обратите внимание: класс Escape имеет package-private доступ, так как у него нет явного модификатора доступа:

// internal/Library.java
package internal;

public interface Library {
static Escape create() {
return new Escape();
}
}

class Escape {}


Следующая программа использует оба класса, но из другого пакета. При этом она не ссылается напрямую на класс Escape по имени — и успешно компилируется и выполняется без ошибок:

void main() {
Object a = internal.Library.create();
IO.println(a);

var b = internal.Library.create();
IO.println(b);

Object c = internal.Library.create();
IO.println(c.toString()); // обратите внимание на вызов toString()
}


Но если последнюю переменную c тоже объявить с использованием var, как здесь:

var c = internal.Library.create();


то компиляция завершится ошибкой:

"Object.toString() is defined in an inaccessible class or interface"


🔥 — знал об этом
👍 — полезно

👉 Java Portal
  • 👍 18
  • 🔥 2
More from @java_iibrary
  1. Oct 3, 2026💡 Предпочитайте делегирование наследованию: отношение «является» тесно связывает ваш клас…
  2. Oct 2, 2026🚀 Spring Boot 4: переименовано свойство преобразования исключений ✅ Было: spring.dao.exce…
  3. Oct 2, 2026Процесс ≠ Поток ≠ Виртуальный поток. Эти понятия часто путают, хотя они решают разные зада…
  4. Oct 1, 2026Когда Java-стектрейс оказался длиннее контекста ИИ 👀 👉 Java Portal
  5. Oct 1, 2026Spring Boot 4: приближение срока истечения SSL-сертификатов больше не меняет статус health…
  6. Sep 30, 2026Почему один и тот же Java-файл .class запускается на Windows, Linux и macOS без перекомпил…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →