gpt4 book ai didi

java如何正确地将主数组传递给类构造函数?

转载 作者:行者123 更新时间:2023-12-01 16:46:23 27 4
gpt4 key购买 nike

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得到地址值。

我是这么理解的,难道我错了?

最佳答案

自上课 Foo是类 Test 的非静态内部类,类 Foo 的一个实例如果没有 Test 的实例,则不能存在。所以要么改变 Foo成为static :

static class Foo {
int[] arr;
Foo(int[] userInput) {
arr = userInput;
}
}

或者如果你不想这样做static然后更改创建 Foo 实例的方式通过 Test 的实例:

Foo instance = new Test().new Foo(userInput);

关于java如何正确地将主数组传递给类构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49717270/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com