Описание тега package-private

Частный пакет - это модификатор управления доступом по умолчанию в Java. Если член класса не помечен как private, protected или public, то по умолчанию этот член является package private. Когда член является `package-private`, к нему может получить доступ только родительский класс и другие классы в том же пакете.
5 ответов

Публично объявить закрытый тип пакета в сигнатуре метода

Это возможно в Java: package x; public class X { // How can this method be public?? public Y getY() { return new Y(); } } class Y {} Так что веская причина, по которой компилятор Java позволяет мне объявить getY() метод как public? Что меня беспокои…
1 ответ

Объединяются ли пакеты (которые имеют общее имя) во время компиляции?

Я почти уверен, что этот вопрос был задан, но я не уверен, что искать относительно этого. Во всяком случае, мне было любопытно, если бы было возможно создать класс, который расширяет ByteBuffer, Я думал, что это будет невозможно из-за ByteBuffer име…
1 ответ

Видимость закрытого элемента пакета в сложных комбинациях наследование / пакет - общее правило Qiuck для проверки видимости

Если классы Base и Derived находятся в разных пакетах, то закрытый для пакета член из Base не должен наследоваться и, следовательно, он должен отсутствовать в Derived, то есть такой член должен быть недоступен как до Base obj = new Derived() а также…
3 ответа

Kotlin: сделать внутреннюю функцию видимой для модульных тестов

Если тесты находятся в другом модуле, нежели производственный код (который является общим), каков наилучший способ сделать внутренние функции видимыми для тестов? В Java я бы имел рабочий код и тест в одном и том же пакете и сделал бы тестируемый ме…
28 фев '16 в 14:52
1 ответ

Как я могу вызвать закрытый для пакета метод в Activity из SurfaceView?

У меня есть нестатический, закрытый для пакета метод в моем классе Activity, который я хотел бы вызвать внутри SurfaceView, например: surfaceChanged() или surfaceDestroyed(). public class MyActivity extends Activity { Camera mCamera = Camera.open();…
2 ответа

Когда я буду использовать пакетную приватность в Java?

Мне нравится контроль доступа на любом языке, но я нахожу, что в Java я почти никогда (если вообще когда-либо) не использую модификатор доступа с закрытым пакетом (или его отсутствие). Я понимаю, что внутренние классы могут быть private, protected, …
1 ответ

Почему закрытый доступ к методам предпочтительнее, чем закрытый пакет?

Разработчики Java всегда используют частный уровень доступа для методов, которые не используются за пределами этого класса. Это дает известные преимущества, но с другой стороны мы увеличиваем сложность модульных тестов. В большинстве случаев наш код…
02 дек '17 в 15:28
3 ответа

Перемещение закрытого пакета - должен ли я считать этот двоичный файл несовместимым?

Из-за проблемы с именем пакета aux под Windows я перемещаю вспомогательный класс в иерархию пакетов моей библиотеки из de.sciss.scalainterpreter.aux в de.sciss.scalainterpreter Класс является частным для библиотеки, т.е. private[scalainterpreter] ob…
0 ответов

Как заблокировать доступ к объектам извне библиотеки?

Я занимаюсь разработкой библиотеки слишком много объектов на Android. Поэтому я должен сгруппировать классы с пакетом. Я хочу получить доступ к классу из C, но хочу запретить доступ к этим объектам из Project X. Поэтому я не могу использовать иденти…
04 ноя '16 в 12:32
2 ответа

Как сделать так, чтобы два разных пакета обращались к классам друг друга, не позволяя любому третьему пакету обращаться к нему в Java?

Я делаю проект в NetBeans и сталкиваюсь с проблемой, подобной той, которая уже задавалась на этом сайте - Как разделить личные данные пакета между двумя пакетами в Java? С небольшой разницей, скажем, разработчик приложения может видеть мою кодовую б…
3 ответа

Есть ли способ избежать наложения этого типа?

Рассмотрим следующий класс, который определяет и реализует Foo интерфейс: public class MyClass { public Foo getFoo() { return new FooImpl(); } public void fooMethod(Foo foo) { final fooImpl = (FooImpl) foo; fooImpl.hiddenMethod(); } public interface…
7 ответов

Разве "закрытый пакетный" членский доступ не является синонимом доступа по умолчанию (без модификатора)?

Я немного растерялся из-за термина "частный пакет", который используется в некоторых документах наряду с использованием "доступа по умолчанию". Разве пакетный доступ и доступ по умолчанию не являются синонимами защищенного?
3 ответа

Enum реализующий интерфейс, интерфейс и видимость метода

Я просто наткнулся на следующий код, который меня немного удивил, хотя я и преобразовал его в простой SSCEE: custompackage.package1.MyEnum.java public enum MyEnum implements MyInterface { CONSTANT_ONE() { @Override public void myMethod() { //do some…
22 май '14 в 15:43
2 ответа

Java - Разница между приватным и закрытым для пакета конструктором перечисления

В последнее время я довольно часто использую перечисления. Так что мне интересно... Есть ли разница между приватным конструктором Enum и конструктором enum без какого-либо модификатора видимости (package-private)?
09 сен '13 в 18:49
2 ответа

Доступ к закрытым полям пакета в классах, общих для всех проектов Eclipse

У меня есть класс модели ( шаблон MVC), который я использую в двух проектах Eclipse. Один проект, давайте назовем это Producer, захватывает данные из потока и сохраняет их в базе данных. Модельный класс, о котором идет речь, скажем ObjectModel, испо…
1 ответ

Закрытый класс пакета, видимый некоторым другим пакетам (с тем же именем) из другой исходной папки

Когда я проводил некоторое тестирование с пакетами и частными пакетами в Java, я заметил интересную вещь. Ниже приведена исходная структура моих проектов, класс MyTestClass.java в упаковке com.test.pkg в исходной папке src класс, защищенный пакетом …
25 май '15 в 10:46
2 ответа

Почему я не могу получить доступ к закрытым полям пакета в пакете android.widget?

Я пытаюсь переопределить класс Android View, чтобы немного изменить функциональность. Но мне нужно изменить поле, в котором нет метода установки. Я поместил подкласс в пакет под названием android.widget, Почему я не могу получить доступ ни к одному …
07 окт '10 в 22:06
2 ответа

Есть ли способ передать закрытый класс пакета статическому методу

Мне интересно, есть ли способ вызвать статический метод из другого пакета, который принимает закрытый класс пакета в качестве параметра? это единственный способ переместить класс MessagePackagePrivate в другой файл.java и сделать его общедоступным? …
12 авг '12 в 04:25
1 ответ

Почему я не могу получить доступ к закрытому пакету в другом банке (НЕ запечатанном)?

Я столкнулся со странным поведением загрузчика классов Java: Предполагая, что я отправляю jar Apache Spark в кластер, который содержит расширение HiveServer2: package org.apache.hive.service.server; public class MyOP2 extends HiveServer2.ServerOptio…
09 сен '17 в 17:39
3 ответа

Есть ли способ выполнить небезопасный код (отключить менеджер безопасности) в Java?

Пожалуйста, не публикуйте ответ, говорящий "ты не должен этого делать". Я не планирую использовать это в производственном коде, но только для развлечения. Отвечая на этот вопрос, я хотел запустить произвольный небезопасный код Java для развлечения. …
22 мар '13 в 06:03