Я понимаю, что пользовательский автобокс не поддерживается в Java, но я также заметил, что могу расширить объект Number. Так как сам объект числа, кажется, разрешает автобокс примитивов, это работает:
Number val = 5; //This compiles no problem
Если, однако, я расширяю Number и пытаюсь использовать дочерний тип, программа не может скомпилировать:
MyNumber num = 5; //This does not compile :(
Я понимаю, что это не разрешено и, вероятно, никогда не будет разрешено в Java, но какой механизм вызывает этот разрыв? Обрабатывается ли функциональность обертки Number где-то за пределами самого класса, или, возможно, существует какая-то особая инкапсуляция, предотвращающая создание пользовательской обертки?