Ok, lassen wir die Debatte, ob Freundschaft Einkapselung bricht, und tatsächlich versuchen, elegant mit einem kohärenten Design zu kommen. Es ist eine zweifache Funktion:Implementieren von Freunden (verfügbar in C++) Funktionalität in Java
1) Allgemeine Frage, wie zu implementieren:
public class A
{
friend class B;
}
2) Warum muss ich diese Funktionalität? Einige meiner Klassen implementieren eine serialisierbare Schnittstelle. Ich möchte jedoch Serializable-Methoden in der Klasse Abgeleitete schützen, so dass ich sie nicht einem Client aussetze (ebenso wie in der Dokumentation - javadoc). Interne Klassen sollten jedoch in der Lage sein, auf sie zuzugreifen. Was ist der allgemeine Weg, um dieses Problem in Java zu lösen?
Hinweis: Ich verwende Freundschaft wie im aktuellen C++ - Standard definiert.
Dank
Does Java unterstützen eine "interne" Modifikator wie C# tut? In C# können Sie intern verwenden, um Dinge nur innerhalb derselben Baugruppe sichtbar zu machen. – OregonGhost
Wirklich nicht genug Informationen. Sollten serialisierbare Methoden sowieso nicht privat sein. –
Ja, Sie brauchen keinen Zugriff auf die Serialisierungsmethoden, um Objekte zu serialisieren. Das scheint argumentativ und auch keine Frage ... – wds