我有以下类:
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
picks。
当然,下面的方法是错误的:
new PickField<String>(Pick.class)
这是不允许的(我认为我知道原因):
new PickField<String>(Pick<String>.class)
那么该怎么做呢?还是说整个方法有些“臭”?