A bit more specific than Stack Overflow question What is an existential type?, what is the difference between Scala\'s existential types and Java\'s wi
They are very similar but Scala's existential type is supposed to be more powerful. For example, Scala's existential type can be both upper and lower bounded whereas Java's wildcard can only be upper bonded.
For example, in Scala:
scala> def foo(x : List[_ >: Int]) = x
foo: (x: List[_ >: Int])List[Any]
the foo takes a list of parameter that has a lower bound of Int.