com.sun.jdi
実行中の VM に関する情報の取得、ブレークポイントの追加、スタック フレームの参照などを可能にするパッケージです。
別のインスタンスの囲みインスタンスを取得するにはどうすればよいですか? たとえば、内部クラス Garfield.Lasagna の 4 つのインスタンスを作成し、それぞれ 2 つを Garfield の異なるインスタンスで囲むコードを次に示します。
public class Garfield {
int belly;
public class Lasagna {
Lasagna() {belly++;}
}
public static void main(String[] args) {
Garfield g1 = new Garfield();
Lasagna l11 = g1.new Lasagna();
Lasagna l12 = g1.new Lasagna();
Garfield g2 = new Garfield();
Lasagna l21 = g2.new Lasagna();
Lasagna l22 = g2.new Lasagna();
}
}
com.sun.jdi.ObjectReferenceには、インスタンスを囲むインスタンスを取得する方法があると思いますが、そうではないようです。
または、デバッグされた VM でjava.lang.Class.getEnclosing{Class,Constructor,Method}() のようなリフレクションを使用しようとしますが、オブジェクト/インスタンスに適用される関連メソッドが表示されません。