Próbowałem tego i otrzymałem dziwne zachowanie od JAVA, czy ktoś może mi to wyjaśnić?Zachowanie parametru Java 3 kropki (varargs) po przekazaniu bez argumentów lub wartości zerowej
boolean testNull(String... string) {
if(string == null) {
return true;
} else {
System.out.println(string.getClass());
return false;
}
}
boolean callTestNull(String s) {
return testNull(s);
}
Wtedy mam przypadek testowy:
@Test
public void test_cases() {
assertTrue(instance.testNull(null)); // NULL
assertFalse(instance.testNull()); // NOT NULL
assertFalse(instance.callTestNull(null)); // NOT NULL
}
pytanie brzmi, czy mogę zadzwonić testNull()
bezpośrednio z parametrem null
, dostanę true
powrotem, ale jeśli rozmowy callTestNull()
z null
, który wzywa testNull()
, to mówi mi, że parametr nie jest pusty, ale pusta tablica.
Jak znaleźć tablicę jest pusta? –
nazywana również elipsą –
Mam na myśli terminologię Java. Ale tak, postać "..." jest rzeczywiście nazywana elipsą. Więcej informacji na temat programowania tutaj https: //en.wikipedia.org/wiki/Ellipsis_ (programming_operator) – eldris