Java 3 points de paramètre (varargs) comportement lorsqu'il est passé sans arguments ou null

J'ai essayé et pour obtenir le comportement bizarre de JAVA, quelqu'un peut m'expliquer ce pour moi?

boolean testNull(String... string) {
    if(string == null) {
        return true;
    } else {
        System.out.println(string.getClass());
        return false;
    }
}

boolean callTestNull(String s) {
    return testNull(s);
}

Puis j'ai des cas de test:

    @Test
    public void test_cases() {
        assertTrue(instance.testNull(null)); //NULL
        assertFalse(instance.testNull()); //NOT NULL
        assertFalse(instance.callTestNull(null)); //NOT NULL
    }

La question est de savoir si je l'appelle testNull() directement avec le paramètre null, je vais obtenir true, mais s'appel callTestNull() avec null, qui appelle testNull(), il me dit que le paramètre n'est pas nulle, mais vide.

InformationsquelleAutor Jaiwo99 | 2013-07-17