In Java11 JDK Klase überschreiben (Debuggen bzw. erweitern)

Hallo Forum Community,

wie kann man in Java11 interne JDK Klassen überschreiben bzw. Bugfixen und oder erweitern.

Damals (JDK8) konnte man das mit Boopath lösen und Java (JDK) Interne Klassen (javax.swing...., java.lang usw. …. ) überschreiben.
Damit konnte man Code ergänzen, Logging einbauen und in Eclipse diese Implementierung sogar debuggen.

Wie geht das denn jetzt mit Java11 und den Modulen?

Bsp.: Die java.lang.Exception oder die swing.JButton Klasse überschreiben.



Danke für Rückantwort & Liebe Grüße
Klaus
 

KonradN

Super-Moderator
Mitarbeiter
Ich weiss gerade nicht, wovon du genau redest. Im ersten Post klang es so, dass Du bestehenden Code verändern willst.

Du kannst Deine Klassen von den vorhandenen Klassen ableiten und dann Methoden überschreiben. Zumindest, so lange die Klasse nicht final ist. Das ist eine Methodik, die sich auch mit Java 9 und später nicht verändert hat.

Also etwas wie:
public class MyButton extends JButton {
public class MyException extends Exception {

Aber da kannst dann nur in Deinem Code z.B. Logging einbauen. Das geht also so nur sehr begrenzt.
 
Danke für deinen Sonntagsehrgeiz ;)

Mit dem Erweitern ist mir bewusst.

Mein Problem entstand dadurch, dass in Java11 die Frameposition beim Maximieren anders als in Java8 arbeitet.
Es handelt sich um eine interne JDK Klasse (sun.awt.windows.WFramePeer).
Dort wird in einer "private" Methode etwas berechnet was ich schlecht oder nicht debuggt bekomme.
Deswegen wollte ich genau diese Java Klasse überladen und mein Logging einbauen.
Dabei kam das Problem auf, dass es so nicht mehr geht bzw. ich weiß nicht wie ich die Standard Klassen/Module mit meinen Anpassungen überladen kann.
 

Ähnliche Java Themen

Neue Themen


Oben