gpt4 book ai didi

java - 使用外部类访问静态类成员

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

我有这样的代码,我需要在 getInnerS() 方法中访问静态类 InnerClassmysample 变量,该方法位于嵌套类。我尝试通过为 InnerClass 创建一个新对象来访问它,但我收到 java.lang.StackOverflowError

public class NestedClass{
private String outer = "Outer Class"; //NestedClass instance variable
NestedClass.InnerClass innerClass = new NestedClass.InnerClass();

void getOuterS(){
System.out.println(outer);
}
void getInnerS(){
System.out.println(innerClass.mysample);
}
static class InnerClass{
private String mysample = "Inner Class"; //InnerClass instance variable,
NestedClass a = new NestedClass();
void getIn(){
System.out.println(mysample);
}
void getOut(){
System.out.println(a.outer);
}
}
public static void main(String[] args){
NestedClass nestedClass = new NestedClass();
NestedClass.InnerClass nestedInner = new NestedClass.InnerClass();
nestedClass.getOuterS();
nestedClass.getInnerS();
nestedInner.getIn();
nestedInner.getOut();
}
}

最佳答案

InnerClass构造函数中:

NestedClass a = new NestedClass(); 

因此,您创建了一个新的 NestedClass,它创建了一个新的 InnerClass,它又创建了自己的 NestedClass,并具有相应的 InnerClass...难怪 stackoverflow。

如果你想访问封闭类,你应该使用(在InnerClass方法中)

NestedClass.this   

关于java - 使用外部类访问静态类成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12331968/

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