我正在尝试使用另一个类从另一个类返回数据。此类将返回密码或密钥,具体取决于发送到类的参数。
这是类中返回数据的函数:
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)