让java args成为Arraylist不会工作

knu*_*rst 0 java

由于以下问题,我几乎吓坏了:

public class FileMate {

   public static void main(String[] args) {

      Walker walker = new Walker();

      int mode = Integer.parseInt(args[0]);
      Checker.mode = mode;

      List<String> drives = new ArrayList<String>();

      for (int i=1; i == args.length; i++) {
         drives.add(args[i]+":\\");
      }

      for (String path : drives) {
         walker.walk(path);
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

第一个参数是一个整数,并成功分配给"模式".但应将驱动器号分配给列表"驱动器"的部分在运行时跳过.我已经逐步调试它,args数组包含模式和2个驱动器号.

rge*_*man 5

for循环条件必须true为循环运行,没有为它停下来.将您的条件更改为:

i < args.length
Run Code Online (Sandbox Code Playgroud)

顺便提一下,您可能希望args在开始访问数组之前检查数组的长度,以防用户没有提供任何参数.