J'ai donc travaillé en C# pendant un certain nombre d'années et je travaille maintenant en Java. En C#, vous pouvez utiliser le mot clé internal pour masquer une classe/méthode de la vue publique mais autoriser certains accès assemblies/packages si vous l'accordez spécifiquement. Comme je regarde autour de Java, je ne vois rien qui soit directement identique à l'interne.Existe-t-il un moyen d'utiliser package-private dans java pour permettre l'accès à d'autres paquets?
J'ai découvert le paquet privé. Cependant, cela le garde complètement caché du monde extérieur. Est-il possible en Java de permettre à certains autres paquets d'accéder au code interne sans le rendre public?
Si vous demandez pourquoi je ferais ces réponses sont généralement des tests d'unité/d'intégration ou un besoin d'avoir certains paquets de confiance, l'accès au code pour ne pas le dupliquer. Je sais que certaines personnes pensent que vous ne devriez pas tester le code privé/interne. Je sais aussi que permettre l'accès interne n'est généralement pas une bonne ingénierie logicielle. Je ne suis pas vraiment intéressé par une discussion sur ces sujets, juste curieux si vous pouvez faire ce que je veux faire.
Merci.
Il n'y a pas de mécanisme en Java pour faire ce que vous cherchez. –
Tout au plus vous pourriez protéger votre classe. Il sera alors accessible aux autres classes du même package. – Zahrec
Complément du commentaire de @ Zahrec: et il sera accessible aux autres classes en dehors du paquet si ces autres classes sont un enfant de la classe avec le membre protégé. C'est probablement le plus proche que vous pouvez obtenir ce que vous voulez. –