com.sun.jdi
это пакет, который позволяет получить информацию о запущенной виртуальной машине, добавить точки останова, просматривать кадры стека и т.д.Как вы можете получить экземпляр экземпляра? (Com.sun.jdi)
Как я могу получить охватывающий экземпляр другого экземпляра? Например, вот какой-то код, который создает 4 экземпляра внутреннего класса Garfield.Lasagna, причем каждый из них заключен в другой экземпляр 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 бы способ, чтобы получить в случае, охватывающий экземпляр, но это, кажется, не так.
Или, я бы попытался использовать отражение в отлаженной виртуальной машине, что-то вроде java.lang.Class.getEnclosing{Class,Constructor,Method}(), но я не вижу никакого связанного метода, который применяется к объектам/экземплярам.