如何使用Java.util.Observable.addObserver(Observer o)在main中返回值或更新对象值?
我在main方法中有以下代码摘录:如何使用Java.util.Observable.addObserver(Observer o)在main中返回值或更新对象值?,java,Java,我在main方法中有以下代码摘录: CsparqlQueryResultProxy c1 = null; c1 = engine.registerQuery(query, false); c1.addObserver(new RDFResultsProcesser()); 为了获得Observer参数值,我创建了一个新类作为ResultsFormatter的扩展,如下所示: public class RDFResultFormatter extends ResultFormatter {
CsparqlQueryResultProxy c1 = null;
c1 = engine.registerQuery(query, false);
c1.addObserver(new RDFResultsProcesser());
为了获得Observer参数值,我创建了一个新类作为ResultsFormatter
的扩展,如下所示:
public class RDFResultFormatter extends ResultFormatter {
@Override
public void update(Observable o, Object arg) {
RDFTable res = (RDFTable) arg;
for (final RDFTuple t : res) {
String rdfName = t.get(0);
String rdfVal = t.get(1);
}
}
}
但是,我不能返回main中的
rdfName
和rdfVal
的值,我知道它是空函数,因为update是一个空函数。有人知道如何在main中返回这些值吗?返回值(通常意义上)意味着从程序中的一个点到生成该值的方法有一系列调用。由于代码触发的某些更改对更改的值不感兴趣,因此会调用观察者,因为它首先启动了该更改。因此,观察者观察到的东西不可能“返回”到主程序中的某个位置。您必须考虑一种方法,将该名称/值数据中继到您程序中的某个实体,然后该实体可以执行任何应该执行的操作,主程序将必须查找它。是否有一种方法可以从Observer内部更新主变量?您可以使用visitor模式吗?查看一个很好的示例。main
是一个方法名。其中声明的任何变量都有方法作用域和方法生存期,它们的引用可以通过调用其他方法来传递。可以使用传递给它的引用来创建观察者,它可以使用这些引用来修改对象