Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Java » function overriding, mal anders

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
07.03.2011, 21:24 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


Hallo Ihr,

ich hab zurzeit ein kleines Problem.

Gibt es in Java irgendwie die Möglichkeit, eine Funktion einer Klasse "von außen" umzubiegen?

also in der Javascript-Art:

(peudocode)


C++:
classx.functionFoo = myfunction();



und überall wo nun functionFoo benutzt wird, wird meine funktion aufgerufen.

Oder gibt es eine Möglichkeit per Laufzeit eine Klasse umzubenennen? so das ich meine Klasse dazwischenschalten kann?

Also z.b xyz -> OrigClass
MyClass extends OrigClass -> xyz

Ich müsste das per Laufzeit machen, da ich die originale/proprietäre Klassendatei nur ungern modifizieren möchte, ich diese aber erweitern will.
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
07.03.2011, 21:52 Uhr
0xdeadbeef
Gott
(Operator)


Du kannst womöglich eine andere .class-Datei gleichen Namens einpacken, aber zur Laufzeit Methoden umbiegen oder Klassen austauschen? Außerhalb von Skriptsprachen wirst du solchen Unfug nicht finden.

Ich würde jetzt vorschlagen, einfach von der Klasse abzuleiten und Objekte der Kindklasse herumzureichen, wie es in der Objektorientierung üblich ist, aber ich nehme an, der Gedanke ist dir auch schon gekommen und dein Anwendungsfall gibt es nicht her. Kannst du die Problematik vielleicht etwas genauer erläutern?
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
08.03.2011, 13:00 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


okay ich versuchs:

also, nehmen wir an ich habe folgende klasse in einem proprietären jar: "foo.class", diese wird im rest des java programms überall verwendet.

in dieser ist z.b eine methode "onUpdate"

nun habe ich meine klasse "bar.class" - diese soll sozusagen foo.class ersetzen. Klar ich könnte nun einfach foo.class verändern und diese wieder in das jar-archiv packen. das möchte ich halt auch nicht.

Weiterhin könnte ich dne classpath verändern, das er zuerst in mein "replacement.jar" nach den klassen sucht, und dann in "original.jar". nur das möchte ich auch nicht, da das wieder zu viel "benutzereingriff" erfordert.

Hatte nun noch was bzgl "ClassLoader" gelesen - hab leider nichts genaueres gefunden, ob java dann automatisch den "eigenen" class-loader zum suchen benutzt oder nicht, sonst könnte man da drüber ja evtl arbeiten und die bestimmte klasse "rausfiltern"
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ Java ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: