Java函数中的参数

时间:2016-06-12 09:15:19

标签: java function class args

我正在尝试使用另一个类从另一个类返回数据。 该类将返回密码或密钥,具体取决于发送给类的参数。

这是返回数据的类中的函数:

public static String main(String args[]){
        if (!args.equals(null)){
            String gen = generatePassword(args[1]);
            return gen;
        }else{
            String gen = generateRandomString();
            return gen;
        }
    }

我的错误是:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at me.GaryIsASloth.KeyGenerator.main(KeyGenerator.java:34)

34指的是:

if (!args.equals(null)){

提供的参数将是“pass”,在“true”/“false”之后,它将告诉类是否包含特殊字符。 或者对于键,args将为null。

当我使用密钥时,我让班级完美地工作,然后在修改后它也能正常使用密码。但是,根据参数,我不能让它与两者一起工作。我试过空检查和长度检查。我该怎么办?

3 个答案:

答案 0 :(得分:0)

检查null时,无法检查something.equals(null),因为equals是一种方法,并且无法在null上调用它。 Null不是一个对象。其次,数组中的元素从0开始编号,因此第一个元素将是arg[0]

public static String main(String args[]){
        String gen;
        if (args != null){
            gen = generatePassword(args[0]);
        }else{
            gen = generateRandomString();
        }
        return gen;
    }

答案 1 :(得分:0)

这里:

 if (!args.equals(null)){
            String gen = generatePassword(args[1]);
            return gen;

因为args不为null,这是否意味着它有2个元素?

这不是一个好主意:

String main(String[] args)

因为java有一个看起来像这样的方法 所以巧合不允许你编译

答案 2 :(得分:0)

而不是检查if (!args.equals(null)),而不是像if (args != null)

那样

然后,如果要访问args[1]

,则应检查参数的数量是否正确
if(args.length == 2)