Если у меня есть класс Foo
:
public class Foo<T> {
public Foo(T t) {
//do something
}
public static <E> void bar(E e) {
//do something
}
}
Почему Foo.bar("String");
делает вывод, что E
является строкой (и поэтому не выдает предупреждение компилятора), но new Foo("String");
не означает, что T
является строкой?