2017-06-10 4 views
0

Ich fange gerade an, JDI ein wenig für die Erstellung eines benutzerdefinierten Debuggers herauszufinden. Ich habe versucht, Referenzobjekte in reale Objekte zu konvertieren, damit ich auf ihre Felder oder Methoden zugreifen kann, ohne invoke zu verwenden. Ich schließe das Glas in das Projekt von der Ziel-VM ein, damit ich Zugriff auf alle realen Objekte habe. Ich versuche dann zu casten, bekomme aber die Ausnahme wie com.sun.tools.jdi.ObjectReference cannot be cast to myobject. Gibt es eine Möglichkeit, so etwas zu tun, oder müssen Sie aufrufen?Java JDI Casting zu tatsächlichen realen Typ

User user = (User) frame.thisObject(); 

Antwort

1

Diese Art der Besetzung ist gar nicht möglich, weil Sie einen Debugger als externen Prozess denken, die nicht nichts über Zielprogramm Domain-Objekte nicht kennt.
Ihr Szenario ist eine spezielle Situation, aber der Debugger enthält normalerweise keine Zieljars.

+1

danke für die info, nahm ich so viel aber wollte sicher gehen. Ich werde wahrscheinlich nur ein ähnliches Objekt mit den gleichen Methoden erstellen und die Aufrufaufrufe zu etwas freundlicherem umhüllen. – Silas