gpt4 book ai didi

java - 有没有所谓的局部静态内部类?

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

我只是在尝试内部类,并遇到了拥有本地静态内部类的想法......好吧,我在静态方法中创建了一个内部类......好吧,就这么简单......这是我做的例子

  class Outer {

static void m() {
class LocalStatic {

void s() {
System.out.println("static local inner class method");
}

}
}
}

class Demo {

public static void main(String args[]) {

Outer.m();
}
}

这不会给出任何编译错误。

我知道如何访问静态方法 m。但我想知道是否有一种方法可以从外部类访问本地类 LocalStatic 。据我了解,我们无法访问方法内部的某些内容,对吗?因此,我无法从类外部访问 LocalStatic 或该本地类中的任何方法或属性 Outer 只是想确保..

最佳答案

I want to know if there's a way to access the local class LocalStatic from an outside class

没有办法做到这一点。本地类是本地类,因此访问它们的唯一方法是从该类位于作用域*中的方法。

您可以使用非本地基类或接口(interface)访问本地类的对象:

interface SomeInterface {
void s();
}
class Outer {
static SomeInterface m() {
class LocalStatic implements SomeInterface {
public void s() {
System.out.println("static local inner class method");
}
}
return new LocalStatic();
}
}

现在你可以写了

SomeInterface i = Outer.m();
i.s();

Demo.

* 不言而喻,还有一种方法可以通过反射来访问这些类,但这超出了 Java 语言本身的能力。

关于java - 有没有所谓的局部静态内部类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46755641/

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