本文目錄一覽:
在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!!!
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/300532.html