проблем с чтение массива при помощи 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 шт):
В этой строчке кода:
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]);
}
}
}