Hi I am playing with generics a suddenly found a issue where i am getting compile time error :
Type mismatch: cannot convert from element type Object to String
import java.util.*;
public class A<T> {
private final T first;
public A(T first) {
this.first = first;
}
public List<String> stringList() {
return Arrays.asList(String.valueOf(first));
}
public static void main(String[] args) {
A p = new A<Object>("TEST");
for (String s : p.stringList())
System.out.print(s + " ");
}
}
I am unable to understand this behavior as String is Object and compiler should understand that, can someone explain this?