The variable parameter type in Java methods is a very important concept and has a very wide range of applications. This article analyzes this in the form of examples. The details are as follows:
Generally speaking, when many Java beginners see the following code, they will ask a question: What are the three little dots in the dealArray method?
public class TestVarArgus { public static void dealArray(int... intArray){ } public static void main(String args[]){ } }
This is the issue this article will discuss: variable parameter types, also known as indefinite parameter types. The English abbreviation is varargus, which means variable argument type. It can be easily seen from its name that when this method receives parameters, the number is variable. Okay, let’s call this method now. Please see the code and output:
public class TestVarArgus { public static void dealArray(int... intArray){ for (int i : intArray) System.out.print(i +" "); System.out.println(); } public static void main(String args[]){ dealArray(); dealArray(1); dealArray(1, 2, 3); } }
Output:
##11 2 3
dealArray(); //dealArray(int[] intArray{}); dealArray(1); //dealArray(int[] intArray{1}); dealArray(1, 2, 3); //dealArray(int[] intArray{1, 2, 3});
public class TestVarArgus { public static void dealArray(int... intArray){ for (int i : intArray) System.out.print(i +" "); System.out.println(); } public static void dealArray(int[] intArray){//会有Duplicate method dealArray(int[]) in type TestVarArgus的错误 for (int i : intArray) System.out.print(i +" "); System.out.println(); } public static void main(String args[]){ dealArray(); dealArray(1); dealArray(1, 2, 3); } }
public class TestVarArgus { public static void dealArray(int... intArray){ for (int i : intArray) System.out.print(i +" "); System.out.println(); } public static void main(String args[]){ int[] intArray = {1, 2, 3}; dealArray(intArray); //通过编译,正常运行 } }
public class TestVarArgus { public static void dealArray(int[] intArray){ for (int i : intArray) System.out.print(i +" "); System.out.println(); } public static void main(String args[]){ dealArray(1, 2, 3); //编译错误 } }
public class TestVarArgus { public static void dealArray(int count, int... intArray){ } public static void dealArray(int... intArray, int count){//编译报错,可变参数类型应该作为参数列表的最后一项 } public static void main(String args[]){ } }
public class TestVarArgus { public static void dealArray(int... intArray){ System.out.println("1"); } public static void dealArray(int count, int count2){ System.out.println("2"); } public static void main(String args[]){ dealArray(1, 2); } }