Я использую Java 8.
Я недавно сталкивался с этим:
public class Test {
public static void main(String[] args) {
String ss = "" + (Test.<Integer>abc(2));
System.out.println(Test.<Integer>abc(2));
}
public static <T> T abc(T a) {
String s = "adsa";
return (T) s;
}
}
Это не создает исключение java.lang.ClassCastException. Это почему?
Я всегда думал, что +
и System.out.println
вызывает toString
. Но когда я пытаюсь это сделать, возникает исключение, как и ожидалось.
String sss = (Test.<Integer>abc(2)).toString();