У меня есть следующие классы:
class Field<T> {
private final Class<T> type;
public Field(Class<T> type) {
this.type = type;
}
}
class Pick<V> {
private final V value;
private final Class<V> type;
public Pick(V value, Class<V> type) {
this.value = value;
this.type = type;
}
}
и класс вопрос связан с:
class PickField<T> extends Field<Pick<T>> {
public PickField(Class<Pick<T>> type) {
super(type);
}
}
Теперь это похоже на компилятор. К сожалению, я не знаю/не понимаю, как создать новый экземпляр PickField
, например. для String
выбирает.
Это - конечно - не работает: new PickField<String>(Pick.class)
Это не разрешено (думаю, я понимаю почему): new PickField<String>(Pick<String>.class)
Итак, как это сделать? Или весь подход как-то "пахнет"?