【发布时间】:2013-07-16 04:25:24
【问题描述】:
我尝试了这个并且从 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
}
问题是如果我直接用参数null调用testNull(),我会得到true,但是如果用null调用callTestNull(),它调用testNull(),它告诉我参数是不是 null,而是空数组。
【问题讨论】:
-
怎么发现这个数组是空的?
-
我指的是 Java 术语。但是,是的,字符“...”确实被称为省略号。更多关于编程使用的信息在这里en.wikipedia.org/wiki/Ellipsis_(programming_operator)
标签: java variadic-functions ellipsis