所以我们有:
if (arguments.length != 1 && arguments.length != 2) {
throw new IllegalArgumentException("Wrong number of arguments in " + string);
}
如果arguments
的长度为1,则会传递此块if why
。评估应该在我的知识之后工作:
if(args!= 1 == true)AND(args!= 2 == true)
含义args.length = [0, 3, 4, ...]
只应有效才能通过。但即使它与if
一起,它也会跳过args.legth == 1
。
这怎么可能?
答案 0 :(得分:3)
似乎应该是
if (arguments.length == 1 || arguments.length == 2) {
throw new IllegalArgumentException("Wrong number of arguments in " + string);
}
答案 1 :(得分:2)
如果你想允许除1或2之外的任何东西,请使用:
if (args.length == 1 || args.length == 2) {
throw new IllegalArgumentException("Wrong number of arguments in " + string);
}
答案 2 :(得分:0)
如果参数长度为1,则传递此if if块但原因。该 评估应该在我的知识之后工作:
if(args!= 1 == true)AND(args!= 2 == true)
这没有多大意义。如果args.length
为1,那么args.length != 1
为false,而不是true。