gpt4 book ai didi

java - 从当前外部类对象实例化内部类对象

转载 作者:搜寻专家 更新时间:2023-11-01 01:14:18 24 4
gpt4 key购买 nike

我想知道以下内容在 Java 中是否有效:

class OuterClass {

OuterClass(param1, param2) {
...some initialization code...
}

void do {
// Here is where the doubt lays
OuterClass.InnerClass ic = this.new InnerClass();
}

class InnerClass {

}

}

基本上我在这里试图实现的是从外部类的当前实例实例化一个内部类对象,而不是一个新实例,当前实例。我相信当外部类的构造函数不为空(采用参数)并且我们不知道传递给它们的是什么时(它们不能为空,因为有些可能被分配给访问的类变量),我相信这会派上用场内部类对象)。

如果我解释得很好,请告诉我。

提前致谢!

最佳答案

关于:

public class OuterClass {

OuterClass() {
// ...some initialization code...
}

void doSomething() {
OuterClass.InnerClass ic = this.new InnerClass();
}

class InnerClass {

}

您不需要明确的 OuterClass 标识符,也不需要隐含的 this。

所以这是不必要的:

OuterClass.InnerClass ic = this.new InnerClass();

这在实例方法中很好:

InnerClass ic = new InnerClass();

如果您在 OuterClass 内部的静态方法(例如 main)中创建 InnerClass 的对象,事情就会变得更加复杂。在那里你需要更明确:

这行不通

public class OuterClass {
public static void main(String[] args) {
InnerClass otherInnerVar = new InnerClass(); // won't work
}

但这会很好地工作:

public class OuterClass {
public static void main(String[] args) {
InnerClass otherInnerVar2 = new OuterClass().new InnerClass(); // will work
}

关于java - 从当前外部类对象实例化内部类对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7856808/

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