Это то, что мой код выглядитдженерик ошибка: Дубликат типа параметр
public interface Initializer<A, B> {
public B init(A input);
}
public abstract class AbstractInitializer<A, B> implements Initializer<A, B> {
private B output;
@Override
public final B init(A input) {
if (output != null)
return output;
return initialize(input);
}
protected abstract B initialize(A input);
}
public class MemoryInitializer<Map, Map> extends AbstractInitializer<Map, Map> {
@Override
protected Map initialize(Map input) {
// TODO Auto-generated method stub
return null;
}
}
окончательного конкретное осуществление, где я ожидаю ввода быть картой и выходом будет картой после инициализации, вызывает ошибку компилятора, который говорит , "Дубликат типа параметра Карта". Что мне не хватает?
почему downvote закрыть ?! человек, SO становится местом, где у нас есть люди, участвующие в опросах, без логического объяснения. Мне очень грустно об этом. – Jay
Вы объявляете MemoryInitializer как общий, с двумя параметрами типа, Map и ... Map. Я не думаю, что вы намерены использовать MemoryInitializer как универсальный. –
@JeffreyBosboom да, понял. Починил это. Спасибо – Jay