65

これを試してみたところ、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 ではなく空の配列であることがわかります。truecallTestNull()nulltestNull()

4

1 に答える 1