您的位置:

包含java回调函数的用法的词条

本文目录一览:

在JAVA里 什么是回调函数啊.?

所谓回调,就是客户程序C调用服务程序S中的某个函数A,然后S又在某个时候反过来调用C中的某个函数B,对于C来说,这个B便叫做回调函数。

SAX的我不会写,只会用DOM4J写解析xml文档的例子

如下:

SAXReader sax = new SAXReader();

String file = this.getServletContext().getRealPath("/xml/news.xml");//获得xml文档的路径

Document doc = sax.read(file);

//获得根元素坐标

Element root = doc.getRootElement();

String value = "";

List nodes = root.selectNodes("//new");

//得到元素个数

int size = nodes.size();

//定位到最后一个元素

Element el = (Element) nodes.get(size - 1);

//得到该元素所有属性集合

Iterator it = el.attributeIterator();

//循环遍历

while (it.hasNext()) {

//将集合中包含的元素转换为Attribute类型

Attribute att = (Attribute) it.next();

//取出里面的数值

value = att.getValue();

}

这样 所有的值就能都取出来了

不过 要导入这几个包包

org.dom4j.*

org.dom4j.io.*

java.util.*

java.io.*

java 的回调函数是什么?? 讲的简单些

所谓回调,就是客户程序C调用服务程序S中的某个方法a,然后S又在某个时候反过来调用C中的某个方法b,对于C来说,这个b便叫做回调函数。

java中怎么使用callback函数

在很多场景,作为开发都会想到,在执行完毕一个任务的时候,能执行一个callback函数是多么好的事情。

现在模拟一下这个情景:

定义三个类。分别是主函数类。callback函数的接口类。业务处理类。在业务处理类中,处理完业务之后,执行一个callback函数。

[java] view plain copy

package comz;

public class Main {

public static void main(String[] args) {

new TestCallBack().compute(1000, new ComputeCallBack() {

@Override

public void onComputeEnd() {

System.out.println("end back!!!");

}

});

}

}

这是主函数类。new了一个业务处理类来处理逻辑,并在处理完毕之后,执行callback函数。

[java] view plain copy

package comz;

public class TestCallBack {

public void compute(int n, ComputeCallBack callback) {

for (int i = 0; i n; i++) {

System.out.println(i);

}

callback.onComputeEnd();

}

}

这是业务处理类。仅仅输出一些数字,然后执行回调函数。

[java] view plain copy

package comz;

public interface ComputeCallBack {

public void onComputeEnd();

}

这是回调函数的接口。

--------------------------------------

运行上面的代码,就会在输出结束的时候调用在Main里面的callback函数,输出System.out.println("end back!!!");

--------------------------------------

这里的原理是:

在主类中,新建业务类的时候,传递进去的第二个参数是一个实现了回调接口的匿名类对象。

在业务类中,我们调用了这个对象的onComputeEnd方法。在执行onComputeEnd的时候,jvm会找到这个对象的函数实现并调用。于是就输出了end back!!!