繁体   English   中英

是否允许在 Java 中将顶级类声明为静态

[英]is it allowed to declared top level class as static in Java

我刚开始使用 Akka 框架,我在他们的文档中看到了以下代码。 有人可以解释一下这段代码吗?

是否允许将顶级类声明为 static ?

我找到了一个有类似问题的帖子。 它说顶级类不能在 Java 中声明为静态,但在此示例中顶级代码已声明为静态! 我错过了什么吗?

static class MyActorC implements Creator<MyActor> {
    @Override public MyActor create() {
        return new MyActor("...");
    }
}

Props props2 = Props.create(MyActor.class, "...");
Props props3 = Props.create(new MyActorC());

不。

只有类成员可以是static 成员包括fieldsmethodsnested classesenums等。

但是类(顶级)本身不能是静态的(并且静态也是没有意义的)。

在您参考的文档中,他们没有提到MyActorC顶级类,是吗? (如果您观察,导入语句位于不同的代码片段中)。

我认为您忽略了这些是代码片段的事实。 你不能做Props props2 = Props.create(MyActor.class, "..."); 在根级别。 该代码属于方法内部。

不,这是不允许的。 顶级类支持的访问修饰符如下:

1) 公开

2)

3)摘要

4)决赛

5)严格的fp。

上榜理由:一流

因为 static 关键字是为了提供内存和执行逻辑而不创建对象,一个类没有直接的值逻辑,所以静态关键字不允许用于外部类,主要是上面提到的 static 不能在包级别使用. 它仅在类级别内使用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM