我想用遞歸方法首先我已經聲明的變量遞歸方法最大深度 - 靜態變量
public static int maxdepth=0;
private static void GetDepth(NodeList nl, int level,int maxdepth) {
level++;
if (maxdepth<level)
{
maxdepth= level;
}
if(nl != null && nl.getLength() > 0){
for (int i = 0; i < nl.getLength(); i++) {
Node n = nl.item(i);
if (n instanceof Element)
{
GetDepth(n.getChildNodes(), level, maxdepth);
}
}
}
}
public static void main(String[] args) {
NodeList nl = root.getChildNodes();
GetDepth(nl,level,maxdepth);
System.out.println(maxdepth);
}
得到一個XML文件的最大深度,當我將顯示變量MAXDEPTH的值,我接收值爲0,如同聲明
你有兩個名爲maxdepth的變量,所以在你的第一個方法中,當你說maxdepth = level時,你隻影響在你的方法論證中聲明的變量,而不是你在類中聲明的實際字段。 – Austin 2012-04-26 15:20:36
注意,遞歸調用中更常見的做法是在遞歸調用時增加級別+ 1:GetDepth(n.getChildNodes(),level + 1) – 2012-04-26 15:38:00