I am learning Scala and it introduced variance. Since Scala runs on JVM, I tried to understand variance in terms of Java, but it lead me to confusion. I need a clear understanding of the following:
What is call-site variance and declaration site variance ?
Which one is supported in Java ?
How are these types different from bounded wildcard or bounded parameter?
How do they differ in Scala and Java?