• Post Reply Bookmark Topic Watch Topic
  • New Topic

passing an Array to a Varargs method...  RSS feed

 
Philippe Desrosiers
Ranch Hand
Posts: 138
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Yep, I've read this, but I can't tell if I'm having the same problem, or the opposite problem.

Basically, I'm trying to call a method with a varargs argument, but the parameters I want to pass are already in an array. I want to represent each item in the array as a seperate parameter to the method call.
example:



Problem is, the "foo" method is seeing the incoming arguments as a single argument of type Integer[], when I want it to see them as seperate arguments of type Integer.

Is there a way to do this, without knowing how many parameters will be passed?
 
Philippe Desrosiers
Ranch Hand
Posts: 138
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Nevermind. Figured it out.

For anyone who has this same problem: You're doing something wrong. One of the goals of varargs is specifically to support this kind of thing.

In my case, I was incorrectly converting an ArrayList to an Array (or something).
 
Rob Spoor
Sheriff
Posts: 21048
85
Chrome Eclipse IDE Java Windows
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Varargs always give problems with Object and subclasses. An Integer[] is both an Object[] and an Object. In these cases, it's always wise to cast to either Object[] (if you want the elements to be the actual varargs arguments) or to Object (if you want the array to be one single varargs argument).
 
It is sorta covered in the JavaRanch Style Guide.
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!