Quindi ho lavorato in C# per un certo numero di anni e ora sto lavorando in Java. In C#, è possibile utilizzare la parola chiave interna per nascondere una classe/metodo dalla visualizzazione pubblica, ma consentire l'accesso a determinati assembly/pacchetti se lo si concede in modo specifico. Mentre mi guardo intorno in Java, non vedo nulla che sia direttamente uguale a quello interno.C'è un modo per usare package-private in java per consentire ad altri pacchetti di accedere?
Ho saputo di pacchetto-privato. Tuttavia, questo lo tiene completamente nascosto al mondo esterno. C'è un modo in Java per consentire ad alcuni altri pacchetti di accedere al codice interno senza renderlo pubblico?
Se ti stai chiedendo perché farei queste risposte sono generalmente test di unità/integrazione o la necessità di avere certi pacchetti affidabili che accedono al codice per non duplicarlo. So che alcune persone pensano che non dovresti testare il codice privato/interno. So anche che consentire l'accesso all'interno non è in genere una buona ingegneria del software. Non sono molto interessato alla discussione su questi argomenti, solo curioso di sapere se puoi fare ciò che voglio fare.
Grazie.
Non c'è alcun meccanismo in Java per fare ciò che stai cercando. –
Al massimo potresti rendere la tua classe protetta. Sarà accessibile ad altre classi nello stesso pacchetto allora. – Zahrec
Complementare al commento di @ Zahrec: e sarà accessibile ad altre classi al di fuori del pacchetto se queste altre classi sono un figlio della classe con il membro protetto. Questo è probabilmente il più vicino possibile a quello che vuoi. –