Question: I am now learning Varargs in java.
I wrote this method:

```
 public static void vrati(Object... arguments){
    for(Object i : arguments)

    System.out.println(i);
}

```

Then I called the method:

```
 main.vrati(8,2,"String");

```

So my question is: does varargs cast primitive types to object?
Because I have mixed in int and String in this method call and can access them like is one object.

Answer: 
> 
> So my question does varargs cast primitive types to object?
> 
> 
> 

It casts to the type of the array. If you have

```
a(int... ints)

```

They will be `int`

and if you have

```
b(double... doubles)

```

they will be doubles even if you write `b (1, 2.0f, 10L)`

If you have an

```
c(Object... obj)

```

it will autobox primitives. This is not a feature of var-args but how types are autoboxed as needed anyway.
Varargs are the variable number of arguments. It allows arguments from 0 to unlimited. Varargs are denoted by ... (triple dots). Varargs must be the last argument of the function. Consider the following program :

```
class Test
{
    static void display(Object ... o)
    {   
        for(Object o1 : o)
            System.out.print(o1+" ");
        System.out.println();
    }
    public static void main(String []args)
    {
        display();
        display(10,20,30,40,50);
        display(10.2f,20.3f,3.14f);
    }
}

```