Одна мысль состоит в том, чтобы иметь класс с несколькими статическими реализациями для каждого типа.
public class Strings{
public static int indexOf(String input, String c){
return input.indexOf(c);
}
public static int indexOf(StringBuilder input, String c){
return input.indexOf(c);
}
public static int indexOf(YourClass input, String c){
return input.indexOf(c);
}
}
Таким образом, вы можете просто вызвать Strings.indexOf(whatever)
для каждого типа, который имеет реализацию.Который будет поддерживать ваш код в чистоте, позволяя компилятору / jvm выбирать, какой метод использовать для вас.