Вы не можете, потому что вам нужно указать универсальный UnivariateOperator.Если вам просто нужен универсальный метод, который выбирает TimeSeries, вам понадобится что-то вроде
public class TimeSeriesSampler {
public static <T> TimeSeries<T> sample(TimeSeries<T> timeseries) {
...
}
}
, но если вы хотите, чтобы SamplingOperator реализовал UnivariantOperator, вам нужно будет указать универсальный.Если вы все еще не хотите указывать, вы можете использовать что-то как
public class SamplingOperator implements UnivariateOperatior<Object> {
private SamplingOperator(){
}
public <T> TimeSeries<T> sample(TimeSeries<T> timeseries) {
return null;
}
@Override
public TimeSeries<Object> operateOn(TimeSeries<Object> timeseries) {
...
}
}
, но вы потеряете силу универсального.Другой способ -
public class SamplingOperator<S> implements UnivariateOperatior<S> {
private SamplingOperator(){
}
public <T> TimeSeries<T> sample(TimeSeries<T> timeseries) {
return null;
}
@Override
public TimeSeries<S> operateOn(TimeSeries<S> timeseries) {
return timeseries;
}
}
, но он "пахнет" плохо, так как образец метода дает ощущение метода класса, а не экземпляра.Это ваш выбор, что лучше всего сделать.