Wie man ein Objekt aus einer Datei ausliest ist klar - Serializable...
Aber gibt es eine Möglichkeit aus einer noch nicht instanzierten .class oder .jar Datei ein Objekt zu erzeugen? Mir geht es dabei speziell um ein Applet das ich übers Netzwerk transferieren möchte da das Applet serverseitig ja noch nicht ausgeführt wird - soetwas ein AppletViewer...
Dateien kann man nicht instanzieren. Nur Klassen kann man instanzieren. Wenn man eine Klasse instanziert erhält man ein Objekt.
ergo: Dieser Satz gibt nicht den geringsten Sinn.
Mir geht es dabei speziell um ein Applet das ich übers Netzwerk transferieren möchte da das Applet serverseitig ja noch nicht ausgeführt wird
Seriöser könnte die Antwort wohl nicht sein...
Mit dem Serializable Interface kann man den Speicherinhalt eines Objekts Streamen, dass man damit ein Objekt speichern kann ist mehr oder weniger klar...
Wildcard hat gesagt.:
Dateien kann man nicht instanzieren. Nur Klassen kann man instanzieren. Wenn man eine Klasse instanziert erhält man ein Objekt.
ergo: Dieser Satz gibt nicht den geringsten Sinn.
Ein Objekt wird erzeugt indem eine Konstruktor-Methode der
Klasse aufgerufen wird; hierzu wird das new-Keyword benutzt.
Das ganze hat überhaupt nichts mit Dateien zu tun. Einzig und allein
der class-Loader weiß überhaupt etwas von Dateien in denen der
Bytecode einer Klasse abgelegt ist; er kann diesen Bytecode eventuell
aber auch über das Netz laden, aus Datenbanken auslesen, ...
Gast meint das im Gegensatz zu Servlets, php-Code, ... die ja bekanntlich auf dem
Server ausgeführt werden während Applets eben auf dem Client
ausgeführt werden. Einzig das Wort noch nicht ist in seinem Satz etwas irreführend.
Die Seriosität der Antwort passt sich der Frage an.
Du wirfst hier sachlich falsche Behauptungen/Vermutungen in den Raum und schaffst es nichtmal klar zu sagen was eigentlich das Problem ist.
Welche Art Hilfe hast du also erwartet?
Falls ich das richtig verstanden hab:
Du hast zB eine Datei MisterX.class in der sich eine Klasse namens MisterX befindet.
Und du willst jetzt in einer anderen Datei diese Klasse verwenden.
Du gibts einfach die MisterX.class-Datei in den selben Ordner wie die neue Datei, die MisterX verwendet, und brauchst nichts weiter tun um die Klasse zu importieren, sondern kannst sie so verwenden als wenn sie in der neuen Datei drinnen wär!
Zitat: "Du gibts einfach die MisterX.class-Datei in den selben Ordner wie die neue Datei"
Hab ich eh gesagt, ich wollts mit den Packages nicht unnötig verkomplizieren...
Die Seriosität der Antwort passt sich der Frage an.
Du wirfst hier sachlich falsche Behauptungen/Vermutungen in den Raum und schaffst es nichtmal klar zu sagen was eigentlich das Problem ist.
Welche Art Hilfe hast du also erwartet?
Also wenn ich falsche Behauptugen aufgestellt habe dann liegt das wohl dass ich ein Anfänger bin (was wohl klar sein sollte nachdem ich es in dieses Forum geschickt habe) und das kann kann man wohl auch mit Worten klarstellen und versuchen das Missverständnis zu beseitigen und nicht gleich den Verfasser beleidigen.
Man würde glaub ich auch nicht einem in einem brennenden Auto eingesperrten Menschen der mit "Hilfe ich komme nicht heruas, da die Tür sich nicht herausdrehen lässt" um Hilfe bittet wohl auch nicht mit "Die Tür dreht man garnicht auf du Vollidiot" antwoten.
Also ich verstehe nicht was an der Problemstellung nicht klar ist...
Ich habe den Bytecode eines Applets irgendwo auf einem Server. Da das ja bekanntlich Clientseitig ausgefürt wird kann ich somit nicht eine Fertige Instanz des Objekts mit Hilfe des Serializable Interfaces über das Netzwerk transferieren sondern kann nur den Bytecode des Applets transferieren. Nun möchte ich die Instanz dieses Bytecodes in einer Bereits
laufenden Applikation verwenden. Gibt es eine möglichkeit dies zu tun also den ClassLoader "darum bitten" mir die Klasse zu laden und eine Instanz der Klasse zu erzeugen?
Und falls es überhaupt jemanden interessiert ich bin Legastheniker und noch dazu ist Deutsch eine Fremdsprache für mich
Einfacher Tipp fürs nächste mal: beschreib nicht wie du etwas machen willst, beschreib was du machen willst.
Die class-Datei ist zum erstellen der Klasse da. Die serialisierten Daten sind zum Erstellen eines Objektes (einer bestimmten Klasse) da. Grundsätzlich haben aber class-Datei und serialisierte Daten nicht viel miteinander zu tun.
In deinem Fall: speicher doch die Daten zuerst mal bei dir lokal in einer Datei. Diese Datei kannst du in die JAR-Datei deines Applets einbinden. Über die Methode "getRessource" der Klasse "ClassLoader" kannst du die Datei dann in dem Applet laden, und dein Objekt wieder herstellen.