崩坏学园2团本地图:java 如何修改 ,请诸位大哥大姐们帮忙!

来源:百度文库 编辑:高考问答 时间:2024/05/03 03:49:41
初学Java 好多问题弄不明白,希望能给我指点一二。Thanks!!!
我的目的是输出目录,源程序如下:
import java.io.*; //I/O流
import java.util.*; //Calendar,Timer,Linklist,Stack,TreeSet,Hashtable...

public class digester{
static int indLevel = -1;
public static void main(String args[]){
listPath(new File(args[0]));
}
public void listPath(File path){
File files[];
indLevel++;
files = path.listFiles();
Arrays.sort(files);
for (int i=0;i<files.length;i++){
for(int j=0;j<indLevel;j++){
System.out.print(" ");
}
System.out.println(files[i].toString());
if(files[i].isDirectory()){
listPath(files[i]);
}

}
indLevel--;
}
}

提示的错误信息: 无法从静态上下文中引用非静态 方法 listPath(java.io.File) listPath(new File(args[0]));

怎么修改才能够调用呢?

把listPath改成静态方法public static void listPath(File path){

或者在main方法引用时改为对象的方法引用
digester d = new digester();
d.listPath(new File(args[0]));

另外 类名最好首字母大写 Digester

import java.io.*; //I/O流
import java.util.*; //Calendar,Timer,Linklist,Stack,TreeSet,Hashtable...

public class digester
{
static int indLevel = -1;
public static void main(String args[])
{
listPath(new File(args[0]));
}
public static void listPath(File path)
{
File files[];
indLevel++;
files = path.listFiles();
Arrays.sort(files);
for (int i=0;i<files.length;i++)
{
for(int j=0;j<indLevel;j++)
{
System.out.print(\" \");
}
System.out.println(files[i].toString());
if(files[i].isDirectory())
{
listPath(files[i]);
}

}
indLevel--;
}
}

santa 兄的做法是最简洁的了

同意santa的