Подтвердить что ты не робот

Как инициализировать BigInteger после создания экземпляров (конструктор нельзя вызвать)

Представьте экземпляр BigInteger, то как его инициализировать после создания экземпляра?

Например:

BigInteger t = new BigInteger();

Как поместить значение в t?

Если конструктор не может быть вызван, то что можно сделать, чтобы поместить значение в объект?

4b9b3361

Ответ 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));