Wie kann man herausfinden, wo der Wert herkommt ?

JavaMichael

Aktives Mitglied
Hallo,

ich bin in einer Methode der Klasse "Container.class". Diese sieht so aus:

1691593328409.png

Nun wird der Wert von dim.height auffällig. Daher möchte ich wissen, ob er in dieser Methode überschrieben wird. Um das herauszufinden, habe ich mir folgende Strategien ausgedacht:

1) Ich überprüfe mit dem Debugger zuerst den Wert von prefSize.height und dann den von dim.height.

=> Das funktioniert aber nicht, weil der Compiler einen "Variable can not be resolved" - Fehler ausgibt, denn prefSize ist ja nicht innerhalb der Methode deklariert.

2) Die Variable prefSize könnte deklariert werden innerhalb der Methode.

=> Dann müsste ich aber eine nicht überschreibbare Datei irgendwie mit dem Bootstrap - Klassenpfad überschreiben, was schwierig ist.

3) Der Wert von dim.height wird vor den schreibenden Zugriffen abgefragt und danach.

=> Wie bekomme ich es hin, dass der zweite Conditional Breakpoint anspringt, wenn der vorige angesprungen ist ? Schließlich würde ich zuerst überprüfen, ob dim.height < 900 ist und dann prüfen, ob es größer als 900 ist. Es könnte ja sein, dass der neue Wert dem alten entspricht. Ich muss irgendwie herausbekommen, ob an dieser Stelle eine Änderung stattgefunden hat.

4) In Eclipse gibt es bei dem Debugger den "Step back". So könnte man auch herausfinden, ob sich der Wert von dim.height ändert.

=> Step back springt aber irgendwie gleich zu der übergeordneten Methode und arbeitet scheinbar nicht Zeile für Zeile.



Wie würdet ihr mein Problem lösen ?
 

mihe7

Top Contributor
Was ist denn nun eigentlich Dein Problem?!?

Ansonsten: in 1825 einen Conditional Breakpoint: dim != null && dim.height != prefSize.height
 

JavaMichael

Aktives Mitglied
Tut mir leid, dass ich mich eventuell falsch formuliert habe. Etwas konkreter suche ich nach Strategien, um mit dem Debugger doch noch irgendwie auf die "prefSize" - Variable zugreiffen zu können.

Mit der this - Referenz geht das leider auch nicht, weil die prefSize in einer Vorgängerklasse als private deklariert ist und die aktuelle Klasse mehr oder weniger indirekt davon erbt.

Deinen Tip habe ich gerade ausprobiert, aber hier gab es auch (wie zu erwarten) den "Variable can not be resolved" - Error. Der Compiler hat scheinbar nur Zugriff auf Variablen, die innerhalb der Methode verfügbar sind, daher auch mein Ansatz mit der this - Referenz. Da die Variable aber private ist, geht das auch wieder nicht.

Gibt es sonst noch Vorschläge ? Vielen Dank.
 

Jw456

Top Contributor
Es währe erst mal besser den Code komplett zu Posten und bitte nicht als Bild sonder im den Code Block oben links " <> "
 

Robert Zenz

Top Contributor
(offtopic) man beachte die Zeilenangaben im Screenshot... Ein Teilen über Plattformen wie github.com oder replit.com wäre da wohl zielführender
Das ist die JRE/JDK Klasse von Swing, nicht der Benutzer-Code. @JavaMichael hat das Problem dass ein Swing Element die falsche Groesze bekommt und nun wissen will wann diese gesetzt wird damit man nachvollziehen kann was hier im layout falsch laeuft. Ein Problem mit dem ich auch schon konfrontiert war.

Weisz aber nicht mehr wie ich das gemacht habe. Ich glaube ich habe den Code beinhart kopiert und als Klasse in mein Projekt gepackt (mein Projket kommt ohnehin zuerst im Klassenpfad) und konnte dann dort entsprechen Debug-Sachen machen ohne groszen Aufwand.
 

mihe7

Top Contributor
So, ich hab das jetzt mal in NetBeans ausprobiert: das funktioniert ganz hervorragend (lediglich meine Condition oben war logisch falsch).

1692036579392.png

1692036605561.png
 

JavaMichael

Aktives Mitglied
Ich verwende Eclipse als IDE. Dort habe ich nun genau deine Bedingung, also "java.util.Objects.equals(dim,prefSize)" eingefügt und erhalte wieder den "Variable can not be resolved" - Fehler. Eclipse verwende ich, weil dort die Find-Usuages - Methode besser funktioniert, als in Netbeans.

1) Liegt das ganze den nun an der IDE oder am Compiler ? Weil der "Variable can not be resolved" - Fehler würde sich ja auf den Compiler beziehen. Was kann man da machen ?

2) Wenn mal die eine und mal die andere IDE besser ist, dann frage ich mich, wie man effizient mit unterschiedlichen IDE gleichzeitig arbeiten kann. Gibt es denn dafür die Möglichkeit ? Weil das Umwandeln ist immer recht langwierig.
 
Zuletzt bearbeitet:

KonradN

Super-Moderator
Mitarbeiter
2) Wenn mal die eine und mal die andere IDE besser ist, dann frage ich mich, wie man effizient mit unterschiedlichen IDE gleichzeitig arbeiten kann. Gibt es denn dafür die Möglichkeit ? Weil das Umwandeln ist immer recht langwierig.
Wenn Du das Projekt mit Maven oder Gradle verwaltest, dann kannst Du mit allen üblichen Entwicklungsumgebungen arbeiten und beliebig zwischen diesen wechseln. Oder auch einfach auf der Kommandozeile alles übersetzen.

Was den ersten Punkt angeht, so ist die Frage: An welcher Stelle hast Du den Breakpoint gesetzt? Existiert an dieser Stelle die Variable?
 

JavaMichael

Aktives Mitglied
@KonradN:

So sieht das bei mir aus:

1693507265600.png

@mihe7:

Mit Eclipse findet die Such - Engine mehr Referenzen auch in der Standardbibliothek von Java. In Netbeans war das - soweit ich mich erinnere - nicht der Fall. Außerdem steht da direkt geschrieben, dass die Suchfunktion nicht unbedingt alles finden kann.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J (Effektives) Arbeitverzeichnis herausfinden Allgemeine Java-Themen 5
RalleYTN Datentypen Herausfinden ob Object ein Array ist ohne den Typen des Arrays zu kennen? Allgemeine Java-Themen 12
M Kameradaten bzw. Einstellungen herausfinden Allgemeine Java-Themen 9
Thallius Herausfinden ob ein externes Programm schon gestartet ist? Allgemeine Java-Themen 10
P Herausfinden, ob ein Process ein Fenster hat Allgemeine Java-Themen 1
D Type herausfinden Allgemeine Java-Themen 15
M System herausfinden Allgemeine Java-Themen 6
J Aktuellen Prozess herausfinden. Allgemeine Java-Themen 3
F Herausfinden ob nur 1 oder 0 in einem String ist. Allgemeine Java-Themen 4
C Objekt Typ herausfinden Allgemeine Java-Themen 5
E Benötigte Klassen herausfinden Allgemeine Java-Themen 11
B bereits gelesene Bytes herausfinden Allgemeine Java-Themen 10
Zettelkasten Aus String bestimmtes Zeichen herausfinden Allgemeine Java-Themen 19
E Standort des Programms herausfinden Allgemeine Java-Themen 4
V Calendar monatstage herausfinden? Allgemeine Java-Themen 2
M Username herausfinden? Allgemeine Java-Themen 2
Bloodredangel Zeitstempel von Dateien in Archiven herausfinden Allgemeine Java-Themen 2
H Decmal-Trenner, wie herausfinden Allgemeine Java-Themen 3
P Textfile Encoding herausfinden Allgemeine Java-Themen 2
B Herausfinden ob Datum existiert Allgemeine Java-Themen 2
G Globalen Programm-Ordner herausfinden Allgemeine Java-Themen 7
S Innerer Type einer generischen Collection herausfinden? Allgemeine Java-Themen 13
oltoko PID für das laufende Java Programm herausfinden Allgemeine Java-Themen 3
G Wildcards - Methoden herausfinden. Allgemeine Java-Themen 7
D Benutzerrechte herausfinden Allgemeine Java-Themen 3
G System32 Folder herausfinden Allgemeine Java-Themen 5
D Herstelldatum eine Datei herausfinden Allgemeine Java-Themen 7
U Benutzer herausfinden Allgemeine Java-Themen 3
E Frequenz des Monitors herausfinden Allgemeine Java-Themen 12
Q Aktuelles Verzeichniss herausfinden. Allgemeine Java-Themen 2
V oberste klasse herausfinden. Allgemeine Java-Themen 21
P Java JRE herausfinden Allgemeine Java-Themen 2
G Standard-Browser herausfinden Allgemeine Java-Themen 4
W Herausfinden, wo das Programm liegt. Allgemeine Java-Themen 8
J Document_Root des Webordners herausfinden Allgemeine Java-Themen 2
F Parameter Name herausfinden Allgemeine Java-Themen 25
T aus .cda File Titel und Sänger herausfinden Allgemeine Java-Themen 6
T angemeldeten usernamen herausfinden Allgemeine Java-Themen 4
C Java-Version herausfinden Allgemeine Java-Themen 9
R Geschwindigkeit herausfinden Allgemeine Java-Themen 2
G Speicherauslastung herausfinden Allgemeine Java-Themen 6
JAnruVA Datentypen Berechneten String-Wert in Double umwandeln um weiter zu rechnen Allgemeine Java-Themen 7
T Verschachtelte For-Schleife gibt falschen Wert zurück, Abbruchbedingung evtl. falsch? Allgemeine Java-Themen 9
L 2 Dimensionale ListArray Abfrage nach einem Wert suchen Allgemeine Java-Themen 5
TheSepp Java bestimmtes Array auf den Wert 0 setzen Allgemeine Java-Themen 32
I Wie kann ich den Wert aus einer If abfrage ausgeben Allgemeine Java-Themen 23
S Wert zuweisung Allgemeine Java-Themen 1
Alex_99 Rechner: Wert zwischenspeichern und bei Bedarf mit Ihm weiterrechnen? Allgemeine Java-Themen 6
J Wo kommt der Wert der Variable her ? Allgemeine Java-Themen 6
Tiago1234 CellReference cr = new CellReference("") gibt den falschen Wert zurück Allgemeine Java-Themen 49
N Value Wert aus HTML-Button mittels thymeleaf spring an java übergeben Allgemeine Java-Themen 2
L String zu repräsentativen Wert Allgemeine Java-Themen 0
S Drools: Zählen wie oft ein Wert vorkommt Allgemeine Java-Themen 1
M Gibt es eine API die den aktuellen Wert eines Indikators beim Trading zurückgibt? Allgemeine Java-Themen 7
T Wert an laufenden Java-Prozess übergeben Allgemeine Java-Themen 10
A Variablen Funktion übergibt den Wert nicht Allgemeine Java-Themen 13
P JSpinner gibt leeren Wert zurück Allgemeine Java-Themen 5
KeexZDeveoper Nächstgelegenden Wert ermitteln Allgemeine Java-Themen 5
C Variablen Variablen mit unendlichem Wert Allgemeine Java-Themen 22
G Iteratoren - Wie kann man mithilfe von Iteratoren nur jeden zweiten Wert eines TreeSets ausgeben? Allgemeine Java-Themen 4
A Mit dem letzten bis zum ersten Wert aus Array rechnen Allgemeine Java-Themen 15
T Array - Wert am nächsten zur vollen Sekunde Allgemeine Java-Themen 20
F Wert in Variable schreiben, wenn diese gerade genutzt wird Allgemeine Java-Themen 10
G Methoden BMI -Wert Aufgabe(Methoden) Allgemeine Java-Themen 4
F Wert ändert sich nicht Allgemeine Java-Themen 12
E JavaFX String-Wert geht "verloren" - ratlos Allgemeine Java-Themen 2
A In Excel-Datei schreiben, Formeln der Mappe anwenden, Wert lesen Allgemeine Java-Themen 3
R Int Wert im Dialogfeld ändern Allgemeine Java-Themen 4
B [Android] EditText-Object ist null - Nimmt nicht den Wert des enthaltenen Textfeldes ein Allgemeine Java-Themen 2
O log4j, Problem bei Ausgabe null-Wert Allgemeine Java-Themen 0
H Bestimmten Wert aus String parsen Allgemeine Java-Themen 7
M HashMaps: Wert erweitern Allgemeine Java-Themen 3
C Object.equals() liefert falschen Wert? Allgemeine Java-Themen 14
M Parallele Programmierung: volatile Variable nimmt ungewöhnlichen Wert an Allgemeine Java-Themen 3
T Datentypen ArrayUtils.indexOf( ... ) liefert -1 obwohl Wert scheinbar enthalten ist Allgemeine Java-Themen 15
H Speziellen Wert aus String filtern Allgemeine Java-Themen 4
M JExcel Wert aus Zelle übergeben/ausgeben Allgemeine Java-Themen 2
iB0T Variable Wert ausrauchen Allgemeine Java-Themen 3
iB0T "goto" Befehl aus Batch in Java und Variablen wert immer wieder neu setzen Allgemeine Java-Themen 4
G Z Wert - 3 Dimensionaler Punkt Allgemeine Java-Themen 13
S JPA und Entity-Klassen: Wert ungültig Allgemeine Java-Themen 6
C .Ini-Datei Wert Änderungen werden nicht angenommen Allgemeine Java-Themen 3
J String mit "," in Double Wert konvertieren Allgemeine Java-Themen 7
A nur einen Wert aus einer .conf lesen und erneuern Allgemeine Java-Themen 3
I getResponseCode(); returnt einen falschen Wert? Allgemeine Java-Themen 7
N Applet Apache Poi Wert einer Formel ausgeben Allgemeine Java-Themen 5
G Input/Output Manuelle Änderung von Wert in Swing Komponente bemerken! Allgemeine Java-Themen 2
S Newton-Verfahren liefert nur 1 Wert Allgemeine Java-Themen 3
E Wert von enum zur Laufzeit festlegen. Allgemeine Java-Themen 5
E Wert in andere Klasse übernehmen Allgemeine Java-Themen 4
X this.val$WERT Was ist den das? Allgemeine Java-Themen 2
K Scanner - große Textfile, nur 0 ab betim. Wert Allgemeine Java-Themen 4
S Daten in Array als INT-Wert einlesen - jetzt als csv Datei Allgemeine Java-Themen 5
T OLE-Automation mit Excel (Wert übergabe) Allgemeine Java-Themen 1
Benji0815 Wert in GUI aktualisieren, Beobachter Allgemeine Java-Themen 9
O Hash Wert von Passwörter erstellen (SHA) Allgemeine Java-Themen 9
G Double Wert über OutputStream verschicken Allgemeine Java-Themen 2
S Methode übergibt immer den gleichen Wert Allgemeine Java-Themen 21
J Was ist schneller? Neue Variable oder neuer Wert speziell int Allgemeine Java-Themen 3
M Bit Wert umdrehen Allgemeine Java-Themen 5

Ähnliche Java Themen

Neue Themen


Oben