我正在开发一个自定义网络分析插件,其中包括:
我在test元素类中重写了一个testStarted()方法来进行一些初始化,然后启动一个单独的线程来完成剩下的工作。
我的问题是我需要在我的插件的GUI上显示一些信息,但是我无法获得对我的GUI对象的引用来使用它的方法。我需要在接收样本结果的事件上独立完成此操作,因此我不能使用方法add(最终的SampleResult res)。
在beginnig中,我在modifyTestElement方法中向测试元素类发送GUI对象引用:
@Override
public void modifyTestElement(TestElement element) {
configureTestElement(element);
NetProbe el = (NetProbe) element;
//Passing GUI handle to TestElement for later status reporting
if (el.getGuiHandle() == null) {
el.setGuiHandle(this);
}
}
如果我将引用存储在test元素中的静态变量中,这非常有效。但是当我打算将新组件的多个实例添加到测试计划中时,我必须使变量非静态,以便对每个GUI类实例进行单独引用。这就是出现问题的地方。如果我这样做,我会得到NullPointerException。
我通过使用测试元素对象的文本解释进行了一些调查,我发现:
有没有人可以解释一下这个新实例的创建地点和原因,以及如何从测试元素对象中获取对我的GUI类对象的引用?
提前致谢。