Я бы хотел использовать DoubeDispatch, чтобы переслать родословную некоторой строки отображения для моих сотен классов сущностей в служебный класс.
Я не хочу реализовывать String createStringRepresentation (StringRepresentationBuilder builder) в каждом отдельном объектном классе, поэтому я попытался использовать обобщенные значения:
public abstract class AbstractEntity<T extends AbstractEntity> {
public String createStringRepresentation(StringRepresentationBuilder builder) {
return builder.createStringRepresentation((T)this);
}
}
public class SomeEntity extends AbstractEntity<SomeEntity> { }
public class StringRepresentationBuilder {
public String createStringRepresentation(Object obj) {
...
}
public String createStringRepresentation(SomeEntity entity) {
...
}
}
К сожалению, это не работает. Приведение игнорируется, и createStringRepresentation (Object obj) вызывается для SomeEntity .
Как я могу решить эту проблему, не прибегая к реализации метода в каждом классе сущностей?