これを試してみたところ、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()
、 parameter を使用して直接呼び出すと返さnull
れることですが、 を呼び出す を使用して呼び出すと、パラメーターが null ではなく空の配列であることがわかります。true
callTestNull()
null
testNull()