gpt4 book ai didi

java - 即使没有什么是静态的,也无法进行静态引用?

转载 作者:行者123 更新时间:2023-12-01 18:52:23 25 4
gpt4 key购买 nike

我的课很好。它有一个很好的内部类。该内部类有一些很好的公共(public)变量。

如何在外部类的构造函数中使用内部类的变量?

public class Outer {
class Inner {
public int id;
public Inner () { }
}

public Outer () {
System.out.println(Inner.id); // Error!
}
}

“无法对非静态字段 Inner.id 进行静态引用。”

该项目使用的是Gson;类 Inner 及其属性 id 由一些 JSON 定义,如下所示:

{
"Outer": {
"Inner": {
"id": 0
}
}
}

然后我像平常一样使用 Gson 调用序列化它。

Gson gson = new Gson();
Outer o = gson.fromJson(json, Outer.class);

我在这里做错了什么吗?我可以将 Inner 与 id 一起更改为静态类,但这会让 Gson 呕吐。我可以设置静态 getter 和 setter,但这也不起作用。

如有任何帮助,我们将不胜感激。

最佳答案

以上所有建议都是正确的答案,但我建议您的内部类应该是静态的。因为

InnerClass 的实例只能存在于 OuterClass 的实例中,并且可以直接访问其封闭实例的方法和字段。

要实例化内部类,必须先实例化外部类。然后,使用此

在外部对象内创建内部对象

关于java - 即使没有什么是静态的,也无法进行静态引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15426234/

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