The division between GenCollectorPolicy and TwoGenerationCollectorPolicy is a unnecessary abstraction. There is plenty of code that assumes two generations and implying that we could use the abstraction to create a generation policy with more than two generations is wrong.
Merging the two classes would simplify the initialization and argument processing substantially since we then can handle the young and the old generation at the same time.
Merging the two classes would simplify the initialization and argument processing substantially since we then can handle the young and the old generation at the same time.