если вы не хотите иметь определенный интерфейс для обработки этих вещей, вы можете использовать универсальный метод следующим образом:
public <T> T mymethod(T type)
{
return type;
}
Помните, что таким образом компилятор ничего не знает о типе, который вы планируете использовать внутри этого метода, поэтому вы должны использовать связанный тип, например:
public <T extends YourType> T mymethod(T type)
{
// now you can use YourType methods
return type;
}
Но вы должны быть уверены, что вам нужен универсальный метод, это означает, что реализация doIt
будет одинаковой для всех типов, с которыми вы планируете его использовать. В противном случае, если каждая реализация отличается, просто перегрузите методы, она будет работать нормально, поскольку возвращаемый тип не используется для динамического связывания:
public String my(String s)
{
return s;
}
public int my(int s)
{
return s;
}
int i = my(23);
String s = my("lol");