我有一个简单的数据结构
class Triple<S,V,O>{
private S s;
private V v;
private O o;
... //constructor
private Object getParameter(int index){
switch(index){
case 0: return s;
case 1: return v;
case 2: return o;
}
}
然后我有一组三元组Set<Triple> tripleSet;
我有一个函数可以在一组三元组的特定索引处创建一组元素。
public Set<Object> extractColumn(Set<Triple> tripleSet, int index){
Set<Object> columnElements = new HashSet<Object>();
for(Triple t : tripleSet){
columnElements.add(t.get(index);
}
return columnElements;
}
现在每当我提取一列时,它就是一组对象,当使用返回集合中的对象时,我必须将其强制转换为相应的类型。是否有通用的方法来编码这个数据结构和提取元素的函数?
答案 0 :(得分:2)
如何参数化每个提取方法?例如:
public <TypeS> Set<TypeS> extractColumnS(Set<? extends Triple<TypeS, ?, ?>> tripleSet) {
Set<TypeS> columnElements = new HashSet<TypeS>();
for (Triple<TypeS, ?, ?> t : tripleSet) {
columnElements.add(t.getS());
}
return columnElements;
}
这是对其中一条注释进行跟进,以便为三元组的每个元素创建getter。