java.lang.String has an empty constructor (calling new String() same as calling new String("") ).
On the other hand, numbers have no constructors without arguments (whatever the value of a new Double() , that is, there is no equivalent to an "empty number") and, therefore, cannot be called in this way, not even by reflection.
source share