I created the following class:
public class Abuser {
<T extends Spam> List<T> createSpam() {
List<T> lst = new ArrayList<>();
T s = new T();
s.prepareAd();
lst.add(s);
// the above is done unknown number of times
return lst;
}
}
to use with classes like this:
public class Spam {
void prepareAd() {}
}
public class WildSpam extends Spam {}
public class MildSpam extends Spam {}
in the following way:
Abuser a = new Abuser();
Lost<WildSpam> wSpam = a.createSpam();
List<MildSpam> mSpam = a.createSpam();
How to make that work with a minimum fuss?