我正在尝试使用另一个类从另一个类返回数据。 该类将返回密码或密钥,具体取决于发送给类的参数。
这是返回数据的类中的函数:
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。
当我使用密钥时,我让班级完美地工作,然后在修改后它也能正常使用密码。但是,根据参数,我不能让它与两者一起工作。我试过空检查和长度检查。我该怎么办?
答案 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)