You cannot use this as a general method, but you can have a general strategy :
interface Adder<T> { T add(T a, T b); }
String Integer:
class StringAdder implements Adder<String> {
@Override public String add(String a, String b) {
return a + b;
}
}
class IntegerAdder implements Adder<Integer> {
@Override public Integer add(Integer a, Integer b) {
return a + b;
}
}
" " :
<T> void something(Adder<T> adder, T a, T b) {
System.out.println(adder.add(a, b));
}
something(new StringAdder(), "Hello", "World");
something(new IntegerAdder(), 1, 2);
, :
System.out.println(new StringAdder().add("Hello", "World"));
System.out.println(new IntegerAdder().add(1, 2));