Java 3 点参数 (varargs) 行为时没有参数或空值
我试过这个,并从JAVA那里得到了奇怪的行为,有人可以为我解释一下吗?
boolean testNull(String... string) {
if(string == null) {
return true;
} else {
System.out.println(string.getClass());
return false;
}
}
boolean callTestNull(String s) {
return testNull(s);
}
然后我有测试用例:
@Test
public void test_cases() {
assertTrue(instance.testNull(null)); // NULL
assertFalse(instance.testNull()); // NOT NULL
assertFalse(instance.callTestNull(null)); // NOT NULL
}
问题是,如果我直接用参数调用,我会回来,但如果用,哪个调用,它告诉我参数不是空的,而是空数组。testNull()
null
true
callTestNull()
null
testNull()