![](/img/trans.png)
[英]static methods can only be declared in a static or top level type in Processing-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
。 成员包括fields
、 methods
、 nested classes
、 enums
等。
但是类(顶级)本身不能是静态的(并且静态也是没有意义的)。
在您参考的文档中,他们没有提到MyActorC
是顶级类,是吗? (如果您观察,导入语句位于不同的代码片段中)。
我认为您忽略了这些是代码片段的事实。 你不能做Props props2 = Props.create(MyActor.class, "...");
在根级别。 该代码属于方法内部。
不,这是不允许的。 顶级类支持的访问修饰符如下:
1) 公开
2)
3)摘要
4)决赛
5)严格的fp。
上榜理由:一流
因为 static 关键字是为了提供内存和执行逻辑而不创建对象,一个类没有直接的值逻辑,所以静态关键字不允许用于外部类,主要是上面提到的 static 不能在包级别使用. 它仅在类级别内使用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.