проблем с чтение массива при помощи get приходит null

дорогие форумчане! Начинаю изучать java и для начала хотел сделать простую задачку: хотел сделать так, чтобы я из любого класса мог смог использовать это массив(прочитать, изменить содержимое, возможно дополнить его). При помощи класса ArrayObject я хотел хранить в нем массив, и вызывать set и get при необходимости посчитать(get) и если были изменить обновить в классе(set). Надеюсь смог донести свою задумку. Буду рад любому совету. Спасибо! Вот что вышло

    public static void main(String[] args) {
        WriteArrayWithFile();
        System.out.println(Arrays.toString(arrayObject.getBody()));
    }
    static void WriteArrayWithFile() {
        ArrayList<String> list = new ArrayList<>();
        try (
        Scanner scan = new Scanner(new File("fail.txt"))) {
            while (scan.hasNextLine()) {
                String[] logon = scan.nextLine().split(",");
                for (int i = 0; i < logon.length; i++) {
                    list.add(logon[i]);
                }
            }
        } catch (
        FileNotFoundException e) {
            e.printStackTrace();
        }
 
        String[] array = list.toArray(new String[0]);
        new ArrayObject(array);
                    for (int i = 0; i < array.length; i++) {
                System.out.println("array["+i+"] = "+array[i]);
            }
    }
public class ArrayObject {
    String[] body;
 
    public ArrayObject(int size) {
        body = new String[size];
    }
 
    public ArrayObject(String[] body) {
        this.body = body;
    }

    public ArrayObject() {
    }
 
    public String[] getBody() {
        return body;
    }
}

Ответы (1 шт):

Автор решения: am233dmg

В этой строчке кода:

System.out.println(Arrays.toString(arrayObject.getBody()));

Вы используете переменную arrayObject, у которой вызываете метод getBody(), при это у вас эта переменная нигде не создана, поэтому я создал эту переменную в классе Main

private static ArrayObject arrayObject;

В другой строке кода пониже

new ArrayObject(array);

Вы создали объект new ArrayObject(array), но безымянный и к нему никак не обратится, если только(например new ArrayObject(array).getBody()).

Поэтому я здесь назвал эту переменную arrayObject

arrayObject = new ArrayObject(array);

которая используется в коде выше в

System.out.println(Arrays.toString(arrayObject.getBody()));

Попробуйте так:

public class Main {

    private static ArrayObject arrayObject;

    public static void main(String[] args){
        WriteArrayWithFile();
        System.out.println(Arrays.toString(arrayObject.getBody()));
    }

    static void WriteArrayWithFile() {
        ArrayList<String> list = new ArrayList<>();
        try (Scanner scan = new Scanner(new File("fail.txt"))) {
            while (scan.hasNextLine()) {
                String[] logon = scan.nextLine().split(",");
                for (int i = 0; i < logon.length; i++) {
                    list.add(logon[i]);
                }
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }

        String[] array = list.toArray(new String[0]);
        arrayObject = new ArrayObject(array);
        for (int i = 0; i < array.length; i++) {
            System.out.println("array["+i+"] = "+array[i]);
        }
    }
}
→ Ссылка