public class Test {
class Foo {
int[] arr;
Foo(int[] userInput) {
arr = userInput;
}
}
public static void main(String[] args) {
int[] userInput = new int[]{1,2,3,4,5};
Foo instance = new Foo(userInput);
}
}
Это выдало мне ошибку
error: non-static variable this cannot be referenced from a static context
Я уже искал некоторые ответы, но не могу решить.
Вот как я думаю об этом коде, я рассматриваю userInput
как указатель, и компилятор выделяет пять int
памяти и назначает userInput address
, затем я передаю этот адрес (я знаю, что java pass by value
) в конструктор класса Foo
, и я думаю, что поле instance
arr
получило значение адреса.
Я так понимаю, я ошибаюсь?