Java 函数中的参数



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

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

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

当我使用密钥时,我让该类完美运行,然后在修改后,它也可以使用密码正常工作。但是,我无法让它同时适用于两者,这取决于参数。我尝试了空检查和长度检查。我能做什么?

检查 null 时,无法检查 something.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)

最新更新