How do you choose what class you add to a list with a variable?

// https://Discourse.Processing.org/t/
// how-do-you-choose-what-class-you-add-to-a-list-with-a-variable/22987/3

// GoToLoop (2020/Aug/02)

static final int DUMB = 0, DUMMY = 1, DUMBER = 2;
int dumbType;

void draw() {
  dumbType = (int) random(3);
  final Dumb d = getDumb(dumbType);
  print(d, TAB);

  noLoop();
  background((color) random(#000000));
}

void mousePressed() {
  redraw();
}

Dumb getDumb(final int which) {
  switch (which) {
  case DUMB: 
    return new Dumb();
  case DUMMY: 
    return new Dummy();
  case DUMBER:
    return new Dumber();
  default: 
    throw new RuntimeException("Unknown Dumb Type Value!");
  }
}

class Dumb {
  @Override String toString() {
    return getClass().getSimpleName();
  }
}

class Dummy extends Dumb {
}

class Dumber extends Dumb {
}