I would say the design gives the programmer maximum flexibility while enforcing Java's rather strict typing requirements.

As for your code example and final question: Obviously, "hello" is not a...