In Java, the following line does not give compilation error
long a = 10;
But the following line throws compilation error "Incompatible type"
Long a = 10;
I know the above statement should be written as
Long a = 10L;
But I would like to understand why did JDK designers took the decision of not doing type conversion and then auto boxing and only doing one of them?