Zugriff auf Klasse/Methoden außerhalb eines Projektordners einschränken

Studdi23

Mitglied
Hallo zusammen,

und zwar habe ich eine Klasse innerhalb eines Java Projekts, die Methoden enthält, welche nur innerhalb des Packages sichtbar sein sollen (Methoden ohne Modifier) und auch selbst nur innerhalb des Packages instanziiert werden kann (Klasse ebenfalls ohne Modifier). Wenn nun jemand anderes meine Klassen benutzen will, einen Projektordner mit der gleichen Package-Struktur erstellt und mein Projekt in seinen build path aufnimmt oder meinetwegen auch als Jar importiert, kann dieser die eigentlich nicht sichtbare Klasse instanziieren und auf deren ebenso nicht sichtbaren Methoden von außen zugreifen. Gibt es eine Möglichkeit das zu verhindern, ohne die Klassenstruktur zu ändern, also ohne das ich jetzt beispielsweise die Klasse als private innere Klasse definiere? Ziel ist also meine Klasse nur innerhalb des Packages MEINES Projektordners sichtbar zu machen und jeglichen Zugriff darauf von außerhalb zu unterbinden.

Gruß
Mario
 
Zuletzt bearbeitet:
so wie ich das verstanden habe, würde
Java:
protected
noch am ehesten passen, ware dann sichbar fürs package und unterklassen.
 
Wenn jemand in seinem Projekt die gleichen Namen für Packages benutzt, wie Du, kann er auf Klassen/Methoden/Variablen mit protected und default Visibility zugreifen. Du hast keine Möglichkeit, das mit Sichtbarkeitsmodifizierern zu verhindern.
 
Du kannst dir mal OSGi anschauen. Das setzt eigene Classloader ein, sodass nur explizit exportierte Packages für andere Bundles sichtbar sein sollten.
 

Zurück
Oben