dont know the java convention here but before the constructor was overloaded on type so youd have compile time errors rather than a runtime invalid type on invalid type.