Dire que j'ai cette classe:Comment jeter une liste complète sans itérer en Java
public class BaseJob{
String name;
public void setName(String name){
this.name=name;
}
public String getName()
{
return name;
}
}
et une autre classe qui la prolonge:
public class DetailedJob extends BaseJob{
public void doThing();
}
De plus, j'ai cette méthode dans un autre classe:
List<BaseJob> getSomeJobs()
maintenant, mon problème est:
est-il possible d'éviter de lancer chaque élément de manière séquentielle dans la liste retournée de getSomeJobs, si je sais avec certitude que chaque BaseJob retourné est en effet un DetailedJob?
Autrement dit, est-il une autre solution que ce qui suit pour jeter tous les éléments dans la liste:
List<BaseJob> baseJobList = getSomeJobs();
List<DetailedJob> detailedJobList = new ArrayList<DetailedJob>();
for (BaseJob baseJob : baseJobList)
detailedJobList.add((DetailedJob) baseJob);
je tenté de donner cette réponse, mais c'est vraiment dangereux, comme vous l'avez noté correctement – dfa
Le casting devrait être de '(liste)' 'non (Liste)'. Sinon, il ne compilera pas. –
notnoop
Vous avez généralement besoin d'un double plâtre pour les lancers impossibles. –