允许在Java中将顶级类声明为静态类吗
我刚开始使用Akka框架,在他们的。有人能解释一下这段代码吗 允许将顶级类声明为静态类吗 我找到了一条有问题的线索。它说在Java中顶级类不能声明为静态的,但在本例中顶级代码已声明为静态的!我遗漏了什么吗允许在Java中将顶级类声明为静态类吗,java,akka,reactive-programming,Java,Akka,Reactive Programming,我刚开始使用Akka框架,在他们的。有人能解释一下这段代码吗 允许将顶级类声明为静态类吗 我找到了一条有问题的线索。它说在Java中顶级类不能声明为静态的,但在本例中顶级代码已声明为静态的!我遗漏了什么吗 static class MyActorC implements Creator<MyActor> { @Override public MyActor create() { return new MyActor("..."); } } Props
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());
静态类MyActorC实现了Creator{
@重写公共MyActor create(){
返回新的MyActor(“…”);
}
}
Props props2=Props.create(MyActor.class,“…”);
Props props3=Props.create(new MyActorC());
否
只有类成员可以是静态的。成员包括字段
,方法
,嵌套类
,枚举
…等等
但是类(顶级)本身不能是静态的(也没有任何静态的意义)
在你提到的课程中,他们没有提到MyActorC是一个顶级课程,是吗?(如果您注意的话,import语句位于不同的代码段中)。我认为您忽略了这是代码段这一事实。您不能执行
Props-props2=Props.create(MyActor.class,“…”)代码>在根级别。该代码属于方法内部。否,
这是不允许的。
顶级are类支持的访问修饰符如下:
1) 公开的
(二)
3) 摘要
4) 决赛
5) 严格的
理由:顶级班
由于static关键字用于提供内存和执行逻辑,而不创建对象,因此类没有直接的值逻辑,因此外部类不允许使用static关键字,主要如上所述,static不能在包级别使用。它只在班级级别内使用。是的。但是如果这个例子适当缩进的话会有帮助。。。并显示了封闭的类声明。