| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > вызов метода из другого пакета |
| Автор: Escorial 28.8.2012, 14:37 |
| есть class A extends C { void f(){...} } А и С в одном пакете без модификаторов, есть class B { void g(){....} } в другом пакете без модификатора. как вызвать метод g() внутри метода f(). возможно любое решения кроме установления другого модификатора доступа. еще вопрос (класс А такой же как и в первом вопросе): class B extend A { void h(){....} } они теперь в одном пакете - как в f() вызвать h()... можно делать все что хочешь... везде пытался отыскать ответ - но найти не могу, подскажите. данный вопрос был на собеседовании. |
| Автор: k0rvin 28.8.2012, 15:03 |
| Прикольно, режим доступа private (который также используется поумолчанию, если никакой модификатор не указан) для того и был придуман, чтобы не позволять обращаться к таким данным извне, а его почему-то пытаются обойти, за такое по идее нужно бить палкой по рукам. А так, через рефлексию вроде можно, https://www.google.com/search?ie=UTF-8&oe=UTF-8&q=how+to+call+private+method+from+another+package+java в помощь. |
| Автор: Karadul 28.8.2012, 15:23 |
| По умолчанию protected же? |
| Автор: Stolzen 28.8.2012, 16:05 |
Нет, правильнее будет назвать package-private, protected несколько шире |
| Автор: Escorial 28.8.2012, 21:42 |
| По умолчанию внутри пакета, без доступа наследникам. Вообщем спасибо, что откликнулись буду дальше искать. |
| Автор: Pawl 2.9.2012, 21:15 | ||||||
Честно, не совсем понял, зачем класс А должен быть наследником С, ну да ладно. Вот каким может быть ответ на первую часть Вашего вопроса:
|
| Автор: Escorial 3.9.2012, 13:59 |
| спасибо за ответ. я не знаю будет ли работать класс А если убрать public модификатор у класса В, так как вся проблема и касалась того, как обойти модификатор доступа. |
| Автор: Escorial 7.9.2012, 12:49 |
| возможно вы правы. просто тогда находит мысль - зачем все это делать - не легче тогда сделать класс публичный?)) - вообщем я насчет этих вопросов себе создал мысль - что люди просто хотят поднять статус собеседования - задавая каверзные вопросы - решения которых смысла не имеет) Спасибо за ответ и помощь - буду для себя знать что можно с помощью интерфесов Conctructor и Method получить напрямую доступ к конструктору и методу н есоздавая обьект класса. - если я правильно понял то что вы предлдожили. |
| Автор: Pawl 8.9.2012, 10:40 | ||||||
Не за что
В java нельзя вызвать метод класса, не создавая объект этого класса, если, конечно, этот метод не static. |
| Автор: Escorial 10.9.2012, 22:20 |
| Спасибо за уточнение:) |