我对某些事情感到非常困惑,我希望能在这里得到一些见解。
假设我想构建一个图形用户界面,可视化 JShell 内部发生的事情,即片段创建的对象如何相互引用,以及片段创建的对象包含在我运行的 JShell 实例中。我如何访问这些对象,最重要的是,我如何访问它们如何相互引用?
一个具体的例子:我创建了一个 JShell 实例,将用户创建的一些片段传递给它,这会导致创建一个 ArrayList、一些对象,并将所述对象添加到所述 ArrayList 中。
如何访问此 ArrayList 和其中包含的对象以在 GUI 中可视化它?
进一步澄清:
//say I create a Jshell:
JShell jShell = JShell.create();
//Which then evauletes user code passed from the GUI:
jShell.eval(userCode)
//userCode could be following lines each passed as separate Strings:
“ArrayList<TestObject> allObj = new ArrayList<TestObject>();”
“TestObject tst = new TestObject();”
“TestObject tst2 = new TestObject();”
“allObj.add(tst);”
“allObj.add(tst2);”
如何访问“allObj”?
如何访问“tst”及其指向的对象?(“tst”指向的“TestObject”实例);
我知道 eval() 返回一个包含更改/添加的片段的 SnippetEvents 列表,但是,我无法理解如何访问由这些片段创建的对象。