有个类
运行如下
java Hello param1 param2 param3 param41. 4个参数都可有可无
2. 有第2, 第3个参数时, 第4个参数必需有现在, 出于安全考虑, 要对参数进行检查
头绪好乱, 请教如何解决

解决方案 »

  1.   


    就是参数的正确性
    比如
    第一个参数要int
    第二个参数要true/false
    第三个参数要true/false
    第四个参数要文件
      

  2.   

    传入的参数是String数组。你只需判断数组长度,并将其转换为正确的类型。
      

  3.   

    问题就是参数是可有可无的,难道要一堆的if else吗当一个参数...
    当二个参数...
    当三个参数...
    当四个参数...这麻烦死了
      

  4.   

    为了方便调用者 将入口函数变的复杂 这样没虾米好处 给你个建议吧第二和第三个参数的位置提成第一和第二个(感觉这两个参数是一起的 两个类型相同的参数你咋区分的 靠..)判断头两个是否都是boolean 如果第二个(再靠一下)是boolean的 第三个就要求强制是文件名 然后第四个可选的话 你可以根据int判断
      

  5.   


    import java.io.File;
    public class Hello {
    public static void main(String[] args) {
    switch(args.length) {
    case 0:
    System.out.println("没有参数");
    break;
    case 1:
    try {
    int i = Integer.parseInt(args[0]);
    System.out.println("第一个参数为:" + i);
    } catch (NumberFormatException e) {
    System.out.println("第一个参数类型错误!");
    }
    break;
    case 2:
    System.out.println("请检查参数,缺少第3、4个参数!");
    break;
    case 3:
    System.out.println("请检查参数,缺少第4个参数!");
    break;
    case 4:
    try {
    boolean b1 = Boolean.parseBoolean(args[1]);
    System.out.println("第2个参数为:" + b1);
    } catch (NumberFormatException e) {
    System.out.println("第2个参数类型错误!");
    }

    try {
    boolean b2 = Boolean.parseBoolean(args[2]);
    System.out.println("第3个参数为:" + b2);
    } catch (NumberFormatException e) {
    System.out.println("第3个参数类型错误!");
    }

    File file = new File(args[3]);
    if(file.exists()) {
    System.out.println("第四个参数类型正确!");
    } else {
    System.out.println("第四个参数类型错误!");
    }
    break;
    }
    }
    }
      

  6.   

    回ls的3个参数是可以的
    比如
    java Hello param1 param2 param4 或者
    java Hello param1 param3 param4
      

  7.   


    啊啊, 我的sample不好
    第二个,第三个参数还是有区别的
    举例有问题
    是这样的
    第二个是"xxx"
    第三个是"yyy"
    这样比较容易明白了
      

  8.   

    恩, 是一种方法, 但是我这里不适用
    我写了个sample
    果然很丑陋啊
    public class TestParams { public static void main(String[] args) {
    boolean flag0 = false;
    boolean flag1 = false;
    boolean flag2 = false;
    boolean flag3 = false; if (args.length == 0) {
    System.out.println("args.length == " + args.length);
    System.out.println("ERROR!");
    return;
    // --------------------------------------------------------
    } else if (args.length == 1) {
    flag0 = args[0].equals("aaa");
    if (flag0) {
    System.out.println("args.length == " + args.length);
    System.out.println("SUCCESS!");
    }
    // --------------------------------------------------------
    } else if (args.length == 2) {
    flag0 = args[0].equals("aaa");
    flag3 = args[1].equals("ddd"); if (flag0 && flag3) {
    System.out.println("args.length == " + args.length);
    System.out.println("SUCCESS!");
    }
    // --------------------------------------------------------
    } else if (args.length == 3) {
    if (args[1].equals("bbb")) {
    flag1 = true;
    } else if (args[1].equals("ccc")) {
    flag2 = true;
    } else {
    System.out.println("args.length == " + args.length);
    System.out.println("ERROR!");
    return;
    }
    flag0 = args[0].equals("aaa");
    flag3 = args[2].equals("ddd"); if (flag0 && (flag1 || flag2) && flag3) {
    System.out.println("args.length == " + args.length);
    System.out.println("SUCCESS!");
    }
    // --------------------------------------------------------
    } else if (args.length == 4) {
    flag0 = args[0].equals("aaa");
    flag1 = args[1].equals("bbb");
    flag2 = args[2].equals("ccc");
    flag3 = args[3].equals("ddd"); if (flag0 && flag1 && flag2 && flag3) {
    System.out.println("args.length == " + args.length);
    System.out.println("SUCCESS!");
    }
    // --------------------------------------------------------
    } else {
    System.out.println("args.length == " + args.length);
    System.out.println("ERROR!");
    return;
    }
    }
    }
      

  9.   

    有个类
    运行如下
    java Hello param1 param2 param3 param41. 4个参数都可有可无
    2. 有第2, 第3个参数时, 第4个参数必需有
    现在, 出于安全考虑, 要对参数进行检查
    头绪好乱, 请教如何解决if(argu.length >=2  && argu.length == 4) {
    }