2015-08-24 54 views
-3

我剛剛開始使用Akka框架,並在documentation中看到以下代碼片段。有人可以解釋這段代碼嗎?是否允許在Java中聲明頂級類爲靜態

它允許聲明頂級類爲靜態嗎?我發現了similar問題。它表示頂級類不能在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()); 

回答

6

NO。

只有班級成員可以是static。成員包括fields,methods,nested classes,enums等。

但是類(頂層)本身不能是靜態的(而且它也不適用於靜態)。

而在documentation你提到,他們有提到MyActorC頂層類,有他們? (如果您觀察,導入語句在不同的代碼片段中)。

1

我想你錯過了這些代碼片斷的事實。您也不能在根級別執行Props props2 = Props.create(MyActor.class, "...");。該代碼屬於一種方法。

+0

是。但是如果這個例子正確地縮進了,並且顯示了封閉的類聲明,這將會有所幫助。 –

相關問題