| 

.NET C# Java Javascript Exception

4
Ich möchte in einem Jar-File nur bestimmte Klassen nach Aussen zur Benutzung freigeben. Alle anderen will ich vor der direkten Anwendung verstecken. Ich also so eine Art Schnittstelle, die von aussen instanziiert werden kann. Ein kleines Beispiel:

In meinem Jar-File befinden sich 2 Packages mit jeweils 2 Klassen. Im Ersten sind die Klassen A und B, im Zweiten die Klassen C und D. Wenn ich das Jar-File weitergebe, möchte ich, daß der Benutzer nur die Klasse A sieht und nur diese instanziieren kann. Was muß ich ändern, um das zu erreichen ?
19.01.2012
ananth3125 61 2
1 Antwort
1
Also es gibt in Java den sog. "inoffiziellen" Modifier package-private, mit dem du den Zugriff für andere Klassen aus dem Package erlaubst, aber womit die Kasse dann nicht öffentlich ist. Vielleicht ist das das, was du suchst. Einschränkungen gibts dadurch, dass du bei einer Assembly aus mehreren Packages leider dann auch keinen Zugriff auf die Klasse aus einer anderen Assembly hast. Dafür gibts wohl workarounds, aber die sind dann ein eigenes (kompliziertes) Thema. Schau mal das zum Thema package-private an:

Controlling Access to Members of a Class
19.01.2012
Eiger 1,9k 2 9
Dies bezieht sich allerdings nur auf den Packagenamen. Eine andere (externe) Klasse im gleichen Package, kann dann trotzdem darauf zugreifen. Soweit ich weiß, gibt es in Java kein Gegenstück zu C#s internal, dass sich auf Assemblies bezieht, da Jar-Dateien nicht zum Java-Standard gehören und nur eine Verteilungsmethode (per zip) darstellen. Bei jeder anderen Methode (per URL, ...) wäre auch nicht klar, wie der modifier umgesetzt werden soll.
LunaticShade 19.01.2012

Stelle deine Java-Frage jetzt!