1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
|
import java.util.*;
class ApplicationObject
{
public ApplicationObject[] getChilds() { .... }
public <T extends ApplicationObject> void searchChilds(Class<? extends T> classe, Set<T> resultSet)
{
ApplicationObject[] childs = getChilds();
for(int i=0, n=childs.length; i<n; i++)
{
.......
if (classe == childs[i].getClass())
resultSet.add((T) childs[i]); // warning
}
}
public Set<Model> searchModels()
{
Set<Model> modelsSet = new HashSet<Model>();
searchChilds(Model.class, modelsSet);
searchChilds(EvaluatedModel.class, modelsSet);
return modelsSet;
}
public Set<Label> searchLabels()
{
Set<Label> labelsSet = new HashSet<Label>();
searchChilds(Label.class, labelsSet);
return labelsSet;
}
}
class Label extends ApplicationObject
{
}
class Model extends ApplicationObject
{
}
class EvaluatedModel extends Model
{
} |
Partager