Как объяснили другие, это связано не со стиранием, а с тем фактом, что convert(Object source)
связан во время компиляции. Если вы поставите @Override
перед каждым, вы получите ошибку в остальных, показывая, что только этот метод переопределяет метод суперкласса.
Вам нужна проверка фактического типа во время выполнения:
public Sku convert(Object source) throws IllegalArgumentException
{
if (source instanceof String) {
return convert((String) source);
} else if (source instanceof ...) {
} else // none match, source is of unknown type
{
throw new IllegalArgumentException("Could not convert to Sku, unsuported type " + source.getClass());
}
}
}
Другие convert
методы должны быть private
.