Нет ли автобоксинга для BigInteger?
Juned и hexafraction уже указывали на то, что Autoboxing работы между примитивов и их соответствующих Упаковщики.
Как почему BigInteger
не имеет соответствующих примитивным бы равносильно ответу на второй вопрос:
Если нет, то это правило для типов, поддерживающих Autoboxing и почему не BigInteger включены ?
Примитивы являются переменные а процессор поддерживает работать непосредственно с BigInteger
это не представляется возможным. Это класс, который поддерживает работу с массивными числами, и для таких операций требуется значительно больше управления.
Каждый современный компьютер имеет инструкцию машинного языка для целочисленного добавления. Поэтому он также может иметь очень простой байтовый код в JVM. A сложный тип, такой как BigInteger
, не может быть обработан таким образом, и он не может быть переведен в простой байтовый код. Поэтому он не может быть примитивным.
Поскольку это класс, а Java не поддерживает перегрузку оператора, вам необходимо использовать его методы и конструкторы вместо простых арифметических операторов, которые вы сможете использовать с примитивами.
Для BigInteger нет распакованного типа. Поэтому нет автобоксинга. – talex
Об этом сообщается официальная ошибка: http://bugs.java.com/view_bug.do?bug_id=6407464. –
@talex: И зачем вам * нужен * точно соответствующий unboxed тип? Поскольку конверсии являются только односторонними, не могли бы вы использовать для этого 'int' или' long'? – mastov