Ну, то, что вызывается, должно быть определено один раз для всех типов. Ваш String printObject(String o)
будет действителен только в том случае, если T
является строкой, в противном случае нет, поэтому компилятор не может связать универсальный метод с этим статически типизированным методом.