What do three dots (…) indicate when used as a part of parameters during method definition?
本问题已经有最佳答案,请猛点这里访问。
在方法定义过程中,当作为参数的一部分使用时,三个点(…)表示什么?
另外,这3个点的符号有编程术语吗?
我在一个代码示例中注意到:
1 2 3 | public void method1 (Animal... animal) { // Code } |
这个方法是从两个地方调用的。调用时传递的参数在两种情况下都不同:
对象数组作为参数传递给method1(animal…)
类动物的对象作为参数传递给方法1(动物…)
那么,是否有点像,如果您不确定是将数组的单个元素或整个数组作为参数传递给方法,那么您在方法定义中使用3个点作为参数的一部分?
另外,请让我知道这三个点的符号是否有编程术语。
它叫varargs。
这意味着你可以通过任意多的类型。
它实际上将其转换为
如果我有以下内容
1 2 3 4 5 6 7 8 | Cat whiskers = new Cat(); Dog rufus = new Dog(); Dolphin flipper = new Dolphin(); method1(whiskers, rufus, flipper); // okay! method1(rufus); // okay! method1(); // okay! method1(flipper,new Parakeet()); // okay! |
这意味着该方法接受该类型对象的数组,但当传递由逗号分隔的该类型的多个对象时,该数组将自动创建。
请记住,方法签名中只能有一个给定类型的vararg参数,并且在vararg后面的签名中不能有另一个相同类型的参数(显然,这两者之间没有区别)。
这意味着可以将零个或多个字符串对象(或它们的数组)作为该函数的参数传递。
也许吧:
1 2 | x("foo","bar"); x("foo","bar","baz"); |