Java 函数中的参数

Arguments in Java function

我正在尝试使用另一个 class 来 return 来自另一个 class 的数据。 class 将 return 密码或密钥,具体取决于发送到 class.

的参数

这是 class 中 return 数据的函数:

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" 之后,这将告诉 class 是否包含特殊字符。 或者对于键,args 将为空。

当我使用密钥时,我的 class 工作得很好,然后在修改后它也可以很好地使用密码。但是,根据参数,我无法让它与两者一起使用。我试过空检查和长度检查。我能做什么?

检查 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;
    }

这里是:

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

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

这不是个好主意:

String main(String[] args)

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

而不是检查 if (!args.equals(null)) 这样做 if (args != null)

然后你应该检查你的参数数量是否正确,如果你想访问args[1]

if(args.length == 2)