Stack Overflow на русском Asked by Aлиса on November 29, 2020
Возник вопрос, создала класс, в конструкторе цикл, где заполнила массив значениями, но при создании объекта и выводе на консоль все значения массива null. Совершенно не понимаю в чем ошибка:(
Звездочками указала проблемные зоны, подскажите пожалуйста, что не так(
package com.company;
import java.math.BigInteger;
import java.util.Random;
import java.util.Arrays;
** public class Main {
public static void main(String[] args) {
BigInteger[] d = new BigInteger[128];
BigInteger[] d1 = new BigInteger[128];
Bits bits = new Bits(d, d1);
System.out.println(bits.getBits()); **
}
}
class Bits {
private final int size = 128; //поля экземпляра
private final Random random = new Random();
private BigInteger bstr2, bstr1;
BigInteger[] nums1 = new BigInteger[128];
BigInteger[] nums2 = new BigInteger[128];
private BigInteger bits1 = new BigInteger(size, random);
private BigInteger bits2 = new BigInteger(size, random);
public Bits (BigInteger[] b1, BigInteger[] b2) { //конструктор
** while (!bits1.equals(BigInteger.ZERO)) {
bstr1 = bits1.mod(BigInteger.valueOf(2));
for (int i=0; i<128; i++) {
nums1[i] = nums1[i].add(bstr1);
}
bits1 = bits1.divide(BigInteger.valueOf(2));
}
nums1 = b1; **
while (!bits2.equals(BigInteger.ZERO)) {
bstr2 = bits2.mod(BigInteger.valueOf(2));
for (int i=0; i<128; i++) {
nums2[i] = nums2[i].add(bstr2);
}
bits2 = bits2.divide(BigInteger.valueOf(2));
}
nums2 = b2;
}
public String getBits() {
return Arrays.toString(nums1);
}
public void ANDBits () {}
}
Алиса, по-моему всё элементарно. Посмотрите на этот кусочек кода:
while (!bits1.equals(BigInteger.ZERO)) {
bstr1 = bits1.mod(BigInteger.valueOf(2));
for (int i=0; i<128; i++) {
nums1[i] = nums1[i].add(bstr1);
}
Вы проинициализировали nums1
, но не заполнили его, все его значения равны null. А вот тут: nums1[i].add(bstr1)
вы пытаетесь у этого null (потому что nums1[i] == null, проверьте дебаггером) вызвать метод add()
.
Answered by Zhenyria on November 29, 2020
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP