Как инициализировать BigInteger после создания экземпляров (конструктор нельзя вызвать)
Представьте экземпляр BigInteger
, то как его инициализировать после создания экземпляра?
Например:
BigInteger t = new BigInteger();
Как поместить значение в t
?
Если конструктор не может быть вызван, то что можно сделать, чтобы поместить значение в объект?
Ответы
Ответ 1
Я не уверен на 100% того, что конкретно вас путает, поскольку вы инициализируете элементы в массиве BigInteger, как и любой другой массив объектов. например.
BigInteger t2 [] = new BigInteger[2];
t2[0] = new BigInteger("2");
t2[1] = BigInteger.ZERO; // ZERO, ONE, and TEN are defined by constants
// or
BigInteger[] t3 = {new BigInteger("2"), BigInteger.ZERO};
Изменить 1:
Ах, теперь я понимаю вашу проблему: вы хотите создать экземпляр BigInteger, а затем установить его значение. Ответ такой же, как и для строк: вы не можете, и это связано с тем, что BigIntegers, подобные Strings, неизменен и не может быть изменен после создания. По этой причине класс не имеет методов "сеттера". Способ изменения значения переменной BigInteger заключается в том, чтобы установить его в новый экземпляр BigInteger.
Ответ 2
Чтобы преобразовать длинное (или регулярное целое число) в BigInteger, используйте статический метод factory valueOf. Вызов BigInteger.valueOf(<i>someInteger</i>)
возвращает новый объект BigInteger
, содержащий указанное целочисленное значение. Вы также можете использовать новый BigInteger("" + <i>someInteger</i>)
, чтобы получить одно и то же, но это clunkier.
Ответ 3
вот несколько примеров:
BigInteger t = BigInteger.valueOf(23);
int i = 66;
t = BigInteger.valueOf(i);
t = BigInteger.ZERO
Ответ 4
Я сделал что-то вроде этого
//initialize with zero
BigInteger t = BigInteger.ZERO;
//if i is any value that is to be assigned
t=t.add(BigInteger.valueOf(i));