Why this method can not be overloaded?
Consider the following code in Java 5.0, why the function() method can not be overloaded?
public class Program {
void function(String... names){
System.out.println("in function(String... names)");
}
void function(String[] names){
System.out.println("in function(String[] names)");
}
}
In the first function() method, the names argument is defined as type String.... This tells the compiler that calling code can pass a variable number of String parameters.
At compile time a vararg is converted to an array (see USING THE VARARGS LANGUAGE FEATURE). The String... equates to a String array (String[]). Therefore, the compiler will treat the second function() method as the duplicate method in the class.
Most Recent java Faqs
- How to uncompress a file in the gzip format?
- How to make a gzip file in Java?
- How to use Java String.split method to split a string by dot?
- How to validate URL in Java?
- How to schedule a job in Java?
- How to return the content in the correct encoding from a servlet?
- What is the difference between JDK and JRE?
Most Viewed java Faqs
- How to read input from console (keyboard) in Java?
- How to use HttpURLConnection POST data to web server?
- How to add BASIC Authentication into HttpURLConnection?
- How to Retrieve Multiple Result Sets from a Stored Procedure in JDBC?
- What are class variables in Java?
- What are local variables in Java?
- How to Use Updatable ResultSet in JDBC?